ディレクトリにトリガーを置く方法


25

ディレクトリをスキャンし、その中のファイルに対していくつかのメンテナンスを行うスクリプトがあります。別のプロセスがディレクトリにファイルを作成します(1日あたり10〜30ファイル)。

スクリプトは、毎日のcronジョブを介して呼び出されます。必要なのは、イベントでスクリプトをトリガーすることです(新しいファイルがディレクトリに作成されるたびに)。cronジョブの頻度を増やすよりも、この方が好きです。

どうやってやるの?インストールするコマンドまたはプログラムはありますか?

助けてくれてありがとう。

回答:


23

交渉する

inoticomingは、Linuxのinotifyフレームワークでディレクトリを監視し、特定の名前のファイルが配置されるとアクションをトリガーするデーモンです。

たとえば、ディレクトリにアップロードされた.changesファイルを待機し、repreproを呼び出してリポジトリに配置するために使用できます。

インクロン

incronは「inotify cron」システムです。通常のcronのように機能しますが、時間イベントではなくファイルシステムイベントによって駆動されます。このパッケージには、「incrond」(crondに類似)と呼ばれるデーモンと、テーブルマニピュレータ「incrontab」(「crontab」など)という2つのプログラムが用意されています。

incronは、Linuxカーネルのinotify syscallsを使用します。

cronと同様に、各ユーザーは独自のincronテーブルを編集できます。


2
例を挙げていただけますか?マニュアルページへのリンクがあまりにも歓迎され、私はのための1つを見つけることができませんでしたincroninoticoming一方がここに
レーケンシュタイン

incronについては、incrond、incrontab、およびincron.confのマンページを参照してください
Florian Diesch

2
あなたの答えを私が見たかった方法で編集しました。私はパッケージの説明からそれをコピーしました。プログラムに名前を付けるときは、今後非常に広範になってください:)
Lekensteyn

4

と呼ばれる小さなプログラムもあります-man ページをiwatch参照してください(このページはUbuntuの正確な(12.04)、他のubuntuバージョンへのリンクがあります)。

iwatch フォルダーを再帰的に(つまり、サブフォルダーも)監視し、ファイル/ディレクトリイベントに応答して電子メールを送信する機能があります。


3

知っておく価値のあるもう1つのユーティリティはfileschangedここのmanページ)、選択したファイルまたはディレクトリのファイルシステムイベントを監視できます。たとえば、次のコマンド

fileschanged -s created -t1 $PWD

ファイル作成イベントの現在のディレクトリを監視し、作成されたファイルの名前をstdout1秒のタイムアウトで書き込みます。

fileschangedおよびとiwatchは異なりincron、フォルダを再帰的に監視できます(別の回答に記載されているように)inoticoming


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.