예를 들어 파일이 있는지 모니터링해야 합니다./tmp/somefile123일부 이벤트 후에 생성되었습니다. 사용해 보았습니다inotify기다려하지만 여기에 문제가 있습니다.
# inotifywait -q -e create /tmp/somefile?*
Couldn't watch /tmp/somefile?*: No such file or directory
그런 파일이 정확히 없기 때문에 거기에 있을지 알고 싶습니다!
이 문제를 어떻게 해결할 수 있나요?
UPD: 내가 도달하고 싶은 것을 설명하면 더 명확해질 것 같아요.
다음과 같이 최소한의 CPU 소비로 쉘 스크립트(sh)를 작성해야 합니다.
if [ $(inotifywait -e create $SPECIFIC_FILE) ]; then
blah-blah-blah some actions
fi
# And then similarly monitor if this file was deleted and then do another actions
해당 스크립트가 다음에서 실행을 중지할 것으로 예상합니다.inotifywait -e $SPECIFIC_FILE 생성이 $SPECIFIC_FILE이 생성되지 않을 때까지 그러면 더 좋을 것입니다.
while [ ! -f $SPECIFIC_FILE ]; do
blah-blah-blah some actions
sleep 1
done
답변1
가짐으로써inotify기다려확인해보세요상위 디렉토리:
/tmp$ inotifywait -e create -d -o /home/me/zz /tmp
/tmp$ touch z1
/tmp$ cat ~/zz
/tmp/ CREATE z1
다음을 사용하여 이벤트의 시간 형식을 지정할 수도 있습니다.-timefmt옵션. 또한 예를 들어 일부 스크립트 파일을 실행하여 즉시 조치를 취하고 싶다면 다음을 사용할 수 있습니다.꼬리 -f스크립트 파일에서 로그 파일을 지속적으로 모니터링하려면 여기를 클릭하세요./집/나/zz또는명명된 파이프파일을 가지고inotify기다려스크립트를 읽는 동안 여기에 쓰십시오.