2011-07-04 6 views
4

これはまさに私がやりたいことです。新しいファイルが定義済みのディレクトリに置かれたことを検出すると、小さなファイル名のスキャン&が実行されます。Linux:OSソースコードを変更するか、スクリプトの起動を自動化する

簡単な例:私は/ home/myname/Downloadsを監視することを選択しました。そのフォルダの状態が変更されたとします。someClass.javaが追加されました。私のアルゴリズムはそれを/ workspaceに送信することを決定し、それを行います。

アルゴリズムを書くのは簡単です。私が求めているのは、この監視をどうやって行うのかです。 は私が2options参照してください。 -findのLinux独自のファイル操作のスクリプトを何とか通知されている通常のbashスクリプト-haveが を自分のコードを追加して、ものがフォルダ

に発生したときに実行するか、または私は完全にオフにしていますか? incronを使用するイグナシオの提案時に拡大すること

+0

[incron](http://inotify.aiken.cz/?section=incron&page=about&lang=ja) –

答えて

4

:Linuxはへのプログラムは変更のためのファイルとディレクトリを見ることができますinotify(7)メカニズムを提供します。 (これは、KDEとGNOME explorer.exeクローンに特に素敵だった - 新しいファイルが追加または削除されたときにディレクトリのリストは、ディレクトリの内容についてbusy-wait定数の再ポーリングせずに、すぐに更新することができます。)

直接inotify_add_watch(2)を使用して面倒なプログラミングですが、 。私はincron(Ignacioに感謝しています)を見つけたことに興奮しています。それは、DECを宣言的な構文で簡単に扱えるようにするのに最適な再利用可能なツールのようです。

1

@ignocioと同様に、incronが機能します。しかし、あなたが始めているのであれば、もっと一般的なことがあります。

cronを参照してください。設定された時間間隔でスクリプトを実行できます。この状況には適していませんが、分、時間、曜日、月、曜日などに1回実行することができます。

いずれにしても、スクリプトではlsを実行して適切なファイルディレクトリ。それらを配列に入れ、それらをループし、必要に応じて処理します。

+0

これは本当にうまくいきませんが、コストがかかりすぎるか遅すぎます...ありがとう! – soBinary

関連する問題