ファイルを生成するかどうかを監視する方法は?

ファイルを生成するかどうかを監視する方法は?

たとえば、ファイルがあるかどうかを監視する必要があります。/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待つスクリプトを読みながら、ここに書いてください。

おすすめ記事