inotifywait が利用できない場合に到着するファイルを監視するにはどうすればよいですか?

inotifywait が利用できない場合に到着するファイルを監視するにはどうすればよいですか?

他のマシンが FTP 経由でファイルを送信したときに書き込まれるディレクトリがあります。ファイルが到着したときにそれを検出し、ファイル名に特定のサブストリング ("jpg" など) が含まれている場合は、ファイルを別のディレクトリに移動する (ファイルの到着が完了した後のみ、到着前ではない) ような仕組みを導入したいと考えています。

私はこれをさまざまな種類の Linux ボックスに導入したいと考えています。そのようなボックスの 1 つには Linux カーネル 2.4.22 が搭載されています。それより古いバージョンもある可能性があります。まだ確認中です。

古いマシンでは、次のように表示されますinotifywait: command not found

これも見たことがあります:The inotify API is available in Linux 2.6.13 and later

この:bash: watch: command not found

POSIX sh や bash や C のアイデアは機能する可能性があります。Perl と Python は、これを実行したいすべての場所で利用できるとは限りません。パッケージをインストールする権限がありません。

答え1

かなり前に書いたこの Perl プログラムが理解できれば、始めるのに役立つでしょう。このプログラムはカーネルの inotify 機能を使用します。

http://www.win2ix.ca/2013/05/31/606/

同期から必要な操作を実行するようにコードを変更する必要がありますが、ほとんどすべて揃っています。

Perl に問題があることは承知していますが、念のためこれをお渡ししたいと思います。

もし役に立つなら、Cでそれを行う方法のデモがここにあります

出典: : en

関連情報