9Cells

inotifywait

inotifywait는 파일 변경을 감지하기 위한 리눅스 명령어입니다.

설치

sudo apt update
sudo apt install -y inotify-tools

사용 예

아래의 예제는 <대상디렉토리>create 되거나 modify 됐을 때 php artisan 명령을 실행합니다.

inotifywait -r -m -e create,modify <대상디렉토리> | while read PATH ACTION FILE;
do
    # 변경 감지 시 실행할 명령 (절대경로 사용 추천)
    php artisan save "${PATH}${FILE}"
done

NineBoard에서 파일기반 글 쓰기를 구현하기 위해 사용됐습니다. 데스크탑용 markdown 에디터를 사용하여 문서를 편집 후 저장하면 서버에 SFTP로 문서 파일을 전송하게 되고 inotifywait가 이 파일을 감지하여 DB에 저장합니다.

종료

다음 명령으로 작동 중인 inotifywait 프로세스를 얻은 후 kill 명령으로 종료시킵니다.

ps -ef | grep inotifywait

다음 명령으로 프로세스를 찾는 과정과 종료시키는 과정을 한 번에 처리할 수 있습니다.

kill $(ps aux | grep '[i]notifywait' | awk '{print $2}')