ディレクトリをスキャンし、その中のファイルをメンテナンスするスクリプトがあります。別のプロセスがディレクトリにファイルを作成します(1日あたり10〜30ファイル)。
スクリプトは、毎日のcronジョブを介して呼び出されます。必要なのは、イベントでスクリプトをトリガーすることです(新しいファイルがディレクトリに作成されるたびに)。 cronジョブの頻度を増やすよりも、この方が好きです。
どうやってやるの?インストールするコマンドまたはプログラムはありますか?
助けてくれてありがとう。
inoticomingは、Linuxのinotifyフレームワークでディレクトリを監視し、特定の名前のファイルが配置されるとアクションをトリガーするデーモンです。
たとえば、ディレクトリにアップロードされた.changesファイルを待機し、repreproを呼び出してリポジトリに配置するために使用できます。
incronは「inotify cron」システムです。通常のcronのように機能しますが、時間イベントではなくファイルシステムイベントによって駆動されます。このパッケージには、「incrond」(crondに類似)と呼ばれるデーモンと、テーブルマニピュレータ「incrontab」(「crontab」など)という2つのプログラムが用意されています。
incronは、Linuxカーネルのinotify syscallsを使用します。
cronと同様に、各ユーザーは独自のincronテーブルを編集できます。
iWatch
と呼ばれる小さなプログラムもあります。 manページ を参照してください(このページはUbuntuの正確な(12.04)で、他のUbuntuバージョンへのリンクがあります)。
iWatch
には、フォルダーを再帰的に(つまり、サブフォルダーも)監視し、ファイル/ディレクトリイベントに応答してメールを送信する機能があります。
知っておく価値のあるもう1つのユーティリティはfileschanged
( manページはこちら )で、選択したファイルまたはディレクトリのファイルシステムイベントを監視できます。たとえば、次のコマンド
fileschanged -s created -t1 $PWD
ファイル作成イベントの現在のディレクトリを監視し、作成されたファイルの名前を1秒のタイムアウトでstdout
に書き込む必要があります。
fileschanged
やiWatch
とは異なり、incron
はフォルダーを再帰的に監視できます(inoticoming
は別の回答に記載されているように)。