![파일 생성 여부를 모니터링하는 방법은 무엇입니까?](https://linux55.com/image/109768/%ED%8C%8C%EC%9D%BC%20%EC%83%9D%EC%84%B1%20%EC%97%AC%EB%B6%80%EB%A5%BC%20%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
예를 들어 파일이 있는지 모니터링해야 합니다./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기다려스크립트를 읽는 동안 여기에 쓰십시오.