ファイルシステムで特定のイベントがいつ発生したかを知るために、inotify-tools を使用して一部のデータを処理する bash スクリプトがあります。bash コンソールで実行すると問題なく動作しますが、デーモンとして実行しようとすると失敗します。その理由は、inotifywait
コマンド呼び出しからのすべての出力がファイルに送られるため、後の部分| while
が呼び出されなくなったためだと思います。どうすれば修正できますか?これが私のスクリプトです。
#!/bin/bash
inotifywait -d -r \
-o /dev/null \
-e close_write \
--exclude "^[\.+]|cgi-bin|recycle_bin" \
--format "%w:%&e:%f" \
$1|
while IFS=':' read directory event file
do
#doing my thing
done
したがって、デーモンとして実行するように-d
指示し、再帰的に実行し、出力を保存するファイルです。私の場合、ファイルは、コマンドの後の部分を処理することを除いて、実際には出力が必要ないためです( )inotifywait
-r
-o
/dev/null
| while...