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

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

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

관련 정보