inotifywaitを使用してファイルがdropboxフォルダにロードされたときにファイルを移動します。

inotifywaitを使用してファイルがdropboxフォルダにロードされたときにファイルを移動します。

CentOSのdropboxにファイルが表示されたらすぐに別のフォルダにファイルを移動する方法を見つけようとしています。

inotifyいくつかの手がかりを見つけるためにインターネットを検索しましたが、ファイルを処理するためにスクリプトを呼び出す必要があるという事実以外には、追加情報を得ることはできません。

私のBASHの知識は非常に限られているので、これをPHPで書くことができるかどうか疑問に思います。

つまり、ファイルが表示されるとすぐに別のフォルダにどのように移動できますかinotify

ベストアンサー1

inotifywaitこのコマンドは、指定されたディレクトリの内容が変更されるたびにメッセージを印刷します。ファイルが作成されるのではなく、Dropboxがダウンロードを完了したときに正しいイベントを選択する必要があります。 Dropboxがどのように機能するのかわかりません。ファイルの最終位置に書き込むとイベントを受け取りますclose_write。ファイルを一時的な場所に書き込んでからその場所に移動すると、moved_toイベントを受け取ります。引き続きイベントを受信し(デフォルトでは次のイベントを待ち)、関連メッセージのみを印刷する-m -qオプションを渡します。inotifywait

cd ~/Dropbox/myfolder
inotifywait -m -q -e close_write --format %f . | while IFS= read -r file; do
  cp -p "$file" /path/to/other/directory
done

おすすめ記事