728x90
inotifywait 명령어(inotify-tools)를 설치하고 사용하는 방법
inotifywait는 inotify-tools 패키지의 일부로 리눅스 파일 시스템에서 파일 또는 디렉터리의 변화를 실시간으로 감지할 수 있는 도구입니다.
inotify-tools란?
inotify-tools는 리눅스 시스템에서 파일 시스템 이벤트를 모니터링하는 강력한 도구입니다. 파일 생성, 삭제, 수정 등과 같은 파일 시스템의 변화를 감지하여 사용자 정의 스크립트를 실행하거나 다른 프로그램에 알릴 수 있습니다.
inotifywait의 사용 용도
- 특정 파일이나 디렉토리의 변경 사항을 모니터링하여 자동화된 작업을 수행
- 실시간으로 파일 시스템의 변경 사항을 확인
- 백업이나 복구를 위한 파일 변경 사항을 추적
inotify-tools(inotifywait) 패키지 설치
Debian 기반 시스템
sudo apt-get update
sudo apt-get install inotify-tools
RHEL 기반 시스템
sudo yum install inotify-tools
inotifywait 명령어의 기본 구문
inotifywait [옵션] [파일 또는 디렉토리]
inotifywait의 주요 옵션
- -e, --event : 감지할 이벤트를 지정
- -r, --recursive : 하위 디렉토리의 이벤트도 감지
- --timeout : 이벤트가 발생하기까지 대기할 시간을 지정
- -m, --monitor : 백그라운드에서 실행, Ctrl+C로 중지하기 전까지 실행을 멈추지 않음
- --syslog : 이벤트를 syslog에 기록
- --format : 출력 형식을 지정
주요 이벤트 옵션
- create : 파일이나 디렉터리가 생성될 때
- delete : 파일이나 디렉터리가 삭제될 때
- modify : 파일이 수정될 때
- access : 파일이 읽힐 때
- move : 파일이나 디렉터리가 이동될 때
728x90
사용 예시
/tmp/myfile 파일의 변경 사항(생성, 수정, 삭제)을 감시
inotifywait -e create,modify,delete /tmp/myfile
이 명령이 실행되면 /tmp/myfile 파일에 다음과 같은 이벤트가 발생하면 다음과 같은 출력이 표시됩니다.
[2023-09-22 11:00:00] myfile: create
[2023-09-22 11:00:01] myfile: modify
[2023-09-22 11:00:02] myfile: delete
/tmp/myfile 파일에 대해 create, modify, delete 이벤트를 감시하는 스크립트를 작성
/tmp/myfile 파일 생성
touch /tmp/myfile
스크립트 작성
vim myfile_inotifywait.sh
#!/bin/bash
# 감시할 파일 경로
file_path="/tmp/myfile"
# inotifywait를 사용하여 파일 이벤트 감시
inotifywait -m -e create,modify,delete --format "%e %w" "$file_path" |
while read -r events file
do
case $events in
CREATE)
echo "파일 $file 가 생성되었습니다."
;;
MODIFY)
echo "파일 $file 가 수정되었습니다."
;;
DELETE)
echo "파일 $file 가 삭제되었습니다."
;;
*)
echo "알 수 없는 이벤트: $events"
;;
esac
done
chmod +x myfile_inotifywait.sh
./myfile_inotifywait.sh
/tmp/myfile 파일 수정
echo "AAA" > /tmp/myfile
echo "BBB" > /tmp/myfile
로그 확인
$ ./myfile_inotifywait.sh
Setting up watches.
Watches established.
파일 /tmp/myfile 가 수정되었습니다.
파일 /tmp/myfile 가 수정되었습니다.
파일 /tmp/myfile 가 수정되었습니다.
파일 /tmp/myfile 가 수정되었습니다.
inotifywait는 리눅스 시스템에서 파일 시스템의 변경 사항을 감시하는 데 유용한 도구입니다. 다양한 용도로 사용할 수 있으므로 리눅스 시스템 관리자라면 익혀두면 유용합니다.
728x90
'리눅스' 카테고리의 다른 글
리눅스에서 SHA-256 해시를 생성하고 파일의 무결성을 확인하는 방법 (0) | 2023.09.24 |
---|---|
fmt 명령어 (0) | 2023.09.24 |
auditd(감사)를 설치하고 사용하는 방법 (0) | 2023.09.22 |
우분투에서 Packer를 설치하고 CentOS 7 이미지를 생성하는 방법 (0) | 2023.09.21 |
split 명령어 (0) | 2023.09.21 |