特定の「トリガーファイル」の生成をどのように監視できますか?

特定の「トリガーファイル」の生成をどのように監視できますか?

start特定のディレクトリに呼び出されたファイルが生成されたときにアプリケーションを実行するシェルスクリプトを作成する必要があります。

特定の名前のファイルが特定の場所に生成されるのを待つシェルスクリプトをどのように作成しますか?

ベストアンサー1

inotifywaitお使いのシステムに他の人が述べたように(ほとんどのLinuxディストリビューション、OpenBSDなど)、そのシステムがある場合は、リソースを最も少なく使用する方法は次のようになりますinotifywait

rm -f yourdirectory/start
while [ "$(inotifywait -e create -q --format %f yourdirectory)" != "start" ]; do :; done
yourcommand

これにより、startファイルが削除され、yourdirectory実行される前にファイルが生成されるのを待ちますyourcommand-e create生成イベントにのみ興味があることを指定し、診断メッセージを-q望まないことを指定しinotifywait--format %f生成されたファイルの名前のみが出力に表示されるように指定します。

1つもない場合は、次も機能し、inotifywait最大遅延時間は1秒です。

rm -f yourdirectory/start
while [ ! -e yourdirectory/start ]; do sleep 1; done
yourcommand

おすすめ記事