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