답변:
당신이있는 경우 inotify를-도구를 사용할 수있는 설치 inotifywait
파일이나 디렉토리에 기록되어있는 경우 작업을 실행하는 데 :
#!/bin/sh
dir1=/path/to/A/
while inotifywait -qqre modify "$dir1"; do
/run/backup/to/B
done
를 Where -qq
스위치가 완전히 침묵, -r
재귀 (필요한 경우) 및 -e
이 경우, 모니터에 이벤트이다 modify
. 보낸 사람 man inotifywait
:
수정
감시 파일 또는 감시 디렉토리 내의 파일이 기록되었습니다.
/etc/profile
시스템 전체 또는 .bash_profile
사용자의 경우 예입니다. 부팅 후 실행하려면 유닉스 / 리눅스의 특성에 따라 다릅니다. /etc/rc.local
, /etc/rc.d/
또는/etc/init.d/
--monitor
스위치 사용을 고려 하고 출력을 루프로 파이프하는 것이 좋습니다. 그렇지 않으면 계속 inotifywait
해서 다시 시작할 때 많은 오버 헤드 가 있습니다.
entr
파일이 변경 될 때 임의의 명령을 실행할 수있는 명령 줄 도구를 사용해보십시오 . 2.9 릴리스 이후, 디렉토리 감시 옵션 ( -d
)이 추가되어 새 파일이 디렉토리에 추가 될 때 이벤트에 반응합니다.
새 파일이 프로젝트에 추가 된 경우 유틸리티를 실행하는 예 :
$ while true; do
> echo src/* | entr -d your_command
> done
디렉토리 감시 모드에서 각 파일의 상위 디렉토리는 내재적으로 감시 목록에 추가됩니다.
이것의 유일한 의미는 새 파일이 나타나면 외부 쉘 루프가 파일 시스템을 다시 스캔 할 수 있도록 종료해야한다는 것입니다.
디렉토리 감시 옵션이없는 버전은 다음과 같습니다.
$ while true; do
> echo src/* src | entr your_command
> done
다음은 필요에 따라 더 간단한 예입니다.
$ ls -d * | entr sh -c 'rsync -vuar A B'
확인 : entrproject.org 웹 사이트를 자세한 내용은.
incrond
또한 관심이있을 수 있습니다.