파일 감시를 위한 inotifywait
리눅스 시스템에서 파일의 생성, 삭제, 이동 등을 감시하여 어떤 작업을 처리할때 유용한다.
1. 설치
먼저 설치되어 있지 않다면 다음 명령어로 설치한다.
yum install inotify-tools
2. 사용법
#!/bin/sh
MONITOR_PATH=/home/test
inotifywait -m -e create -r "$MONITOR_PATH" |
while read dirname eventlist filename
do
echo ${dirname} ${filename}
done
3. Options
-h|--help
도움말을 보여줍니다.
@<file>
감시에서 지정된 파일을 제외합니다.
--exclude <pattern>
확장 정규식 <pattern>과 일치하는 파일의 모든 이벤트를 제외합니다.
--excludei <pattern>
--exclude와 같지만 대소 문자를 구분하지 않습니다.
-m|--monitor
이벤트를 영원히 경청하십시오. 이 옵션이 없으면 inotifywait는 하나의 이벤트가 수신 된 후 종료됩니다.
-d|--daemon
--outfile로 지정된 파일에 이벤트 로깅 이벤트를 백그라운드에서 실행한다는 점을 제외하면 --monitor와 동일합니다. --syslog를 의미합니다.
-r|--recursive
디렉토리를 재귀 적으로 감시합니다.
--fromfile <file>
<file> 또는 stdin의 경우`- '에서 감시 할 파일을 읽습니다.
-o|--outfile <file>
stdout이 아닌 <file>에 이벤트를 인쇄하십시오.
-s|--syslog
stderr 대신 syslog에 오류를 보냅니다.
-q|--quiet
더 적게 인쇄합니다 (인쇄 이벤트 만).
아무것도 인쇄하지 않습니다 (이벤트도 아님).
--format <fmt>
지정된 printf와 유사한 형식 문자열을 사용하여 인쇄합니다. 자세한 내용은 man 페이지를 참조하십시오.
--timefmt <fmt>
--format 문자열에서 % T와 함께 사용하기위한 strftime 호환 형식 문자열입니다.
-c|--csv
CSV 형식으로 이벤트를 인쇄합니다.
-t|--timeout <seconds>
단일 이벤트를 수신 할 때 <seconds> 초 동안 이벤트를 기다린 후 시간이 초과됩니다. <seconds>가 0이면 inotifywait가 시간 초과되지 않습니다.
-e|--event <event1> [ -e|--event <event2> ... ]
특정 이벤트를 수신합니다. 생략하면 모든 이벤트가 수신됩니다.
4. Events
이벤트 | 설명 |
access | 파일 또는 디렉토리 내용을 읽었습니다 |
modify | 파일 또는 디렉토리 내용이 기록되었습니다. |
attrib | 파일 또는 디렉토리 내용이 기록되었습니다. |
close_write | 쓰기 가능 모드로 열린 후 파일 또는 디렉토리가 닫힘 |
close_nowrite | 읽기 전용 모드로 열린 후 파일 또는 디렉토리가 닫힘 |
close | 읽기 / 쓰기 모드에 관계없이 파일 또는 디렉터리가 닫힘 |
open | 열린 파일 또는 디렉토리 |
moved_to | 감시 된 디렉토리로 이동 된 파일 또는 디렉토리 |
moved_from |
감시 된 디렉토리에서 이동 된 파일 또는 디렉토리 |
move |
감시 된 디렉토리로 (부터) 이동 된 파일 또는 디렉토리 |
create |
감시 된 디렉토리 내에 생성 된 파일 또는 디렉토리 |
delete |
감시 디렉토리 내에서 삭제 된 파일 또는 디렉토리 |
delete_self |
파일 또는 디렉토리가 삭제되었습니다. |
unmount |
마운트 해제 된 파일 또는 디렉토리를 포함하는 파일 시스템 |
5. 종료 코드
0 - 시청을 요청한 이벤트가 수신되었습니다.
1 - 시청을 요청하지 않은 이벤트가 수신되었습니다. (일반적으로 delete_self 또는 마운트 해제) 또는 일부 오류가 발생했습니다.
2 ---timeout 옵션이 제공되었으며 이벤트가 발생하지 않았습니다. 지정된 시간 간격으로.
'개발 > Linux' 카테고리의 다른 글
[linux]mount 명령어를 통한 디렉터리 연결하기 (0) | 2023.03.23 |
---|---|
Linux bash shell script 기본 사용법 (0) | 2020.08.18 |
logroate 옵션 (0) | 2017.11.22 |
특정 계정으로 쉘 실행하기 (0) | 2017.11.15 |
CentOS7 방화멱(firewalld) 설정 (0) | 2017.04.24 |