파일 생성 여부를 모니터링하는 방법은 무엇입니까?

파일 생성 여부를 모니터링하는 방법은 무엇입니까?

예를 들어 파일이 있는지 모니터링해야 합니다./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기다려스크립트를 읽는 동안 여기에 쓰십시오.

관련 정보