ファイルをフォルダに移動するPerlスクリプトがあります。実行するたびに、フォルダ内のファイル名がチェックされます。しかし、ファイルが大きくなると、ファイル名を確認するときに動かす準備ができていない可能性があります。私はループの最後で停止し、移動が終了する前に、それが続行されることを確認したいと思います。ファイルの移動がperlで終了したかどうかを確認するには?
答えて
3つの一般的なアプローチ。
- ファイルサイズを監視します。 X秒間サイズが変更されていない場合、ファイルが完成したとします。実装するのは簡単ではなく、エラーが発生しやすい
- の後にマーカーファイルをアップロードすると、移動したファイルが完成します。元のファイルではなくマーカーの存在を確認してください。
- ファイルを別の名前でコピーします。転送が完了したら名前を変更します。
最初の2つを理解していますが、正しいですが、元のファイルが存在するかどうかを確認する方が簡単です。あなたは3番を説明できますか?私はそれをどのように監視できるのか分かりません。ファイルを移動し、終了後、名前を元に戻しますか? – TheAdam122
はい。ファイルを 'your_file_name.in_progress'に移動します。移動が終わったら、名前を 'your_file_name'に変更してください。同じファイルシステムを使用している限り、移動はほぼ瞬時に行われることに注意してください。実際にデータを移動するのではなく、ディレクトリテーブルを更新するだけです。 –
ありがとう、私は実際に移動中にファイルの名前を変更し、1つのディスクにのみファイルを移動しますが、少し時間がかかりますが、プログラムは約10,000ファイル、約3ファイル/秒で動作します。私は理想的な追跡が偽である条件を好むので、プログラムは必要な場合にだけ待機しません。 – TheAdam122
sleep 1 while -e $original_filename;
は、多数のオプションおよびオプションしばらくさえ無限ありますが、あなたは、ファイルが存在することはありません場合は、永久ループでスクリプトを入れないようにするためにコードをフォーマットする必要があります。
それは問題ありませんが、逆のやり方をすることをお勧めします:sleep 1 while - e $ original_filename;ファイルはコピー先のディレクトリに存在する可能性がありますが、プログラムがまだ書き込んでいる可能性があるため、元のファイル名が消えてしまった場合は、続行するのに最適な時間です。 – TheAdam122
それは聞こえるほど良くはありません。本当に大きなファイルが存在しますが、部分的にしか書き込まれません。 – Sobrique
@TheAdam、Yesを修正してください。私はそれを代わりに元のファイル –
- 1. MPMusicPlayerControllerPlaybackStateDidChangeNotification曲が終了したかどうかを確認する
- 2. AS3 - 動画が終了したかどうかを確認する方法
- 3. qprocessが終了したかどうかの確認
- 4. 再帰関数が終了したかどうかを確認するには?
- 5. プロセスが終了したかどうかを確認するには?
- 6. レーキタスクが終了したかどうかを確認するには?
- 7. ラーベリがクッキーを終了するかどうか確認する
- 8. ダウンロードしたファイルが終了したことを確認するにはどうすればよいですか?
- 9. C#でプログラムが終了したかどうかを確認する方法
- 10. スライダが移動したかどうかを確認します
- 11. ファイルを移動またはコピーできるかどうかを確認する
- 12. 終了かシステムエラーかによってアプリケーションが終了したかどうかを確認してください。
- 13. WCFクライアントチャネル(サービス)が終了したかどうかを確認する方法?
- 14. fork()プロセスが終了したかどうかを確認するPython
- 15. appiumドライバが終了したかどうかを確認する方法
- 16. asp.net sql serverストアドプロシージャが終了したかどうかを確認する方法
- 17. Microsoft.WindowsAzure.Storage.DataMovement.TransferManagerのCopyDirectoryAsyncがいつ終了したかを確認するにはどうすればよいですか?
- 18. SCNNode SCNActionが終了したかどうか確認してください
- 19. Observableが終了しているかどうかを確認する方法?
- 20. 値がデータフレーム内ですばやく移動したかどうかを確認
- 21. 終了確認を避けるにはどうすればよいですか?
- 22. OpenGLの操作が終了したかどうかを確認する方法はありますか?
- 23. 文字列がvbcrlfで開始または終了するかどうかを確認します。
- 24. XSLT:変数終了が宣言されたかどうかを確認
- 25. プロセスが完了したかどうかを確認するには?
- 26. $ compileが完了したかどうかを確認するには?
- 27. エスプレッソアクティビティが終了したかどうかをテストするには?
- 28. Iframe/Javascript Youtube Videoが終了するかどうか確認する
- 29. データベースの復元が完了したかどうかの確認
- 30. は、セッション・キル(トランザクション・ロールバック)後に更新トリガーが終了したかどうかを確認します。
コードを投稿してください。 –
おそらく、ファイルがループの後に新しい場所に存在するかどうかを確認することができます。 – Mohit
答えがあまりにも曖昧です。あなたが必要とするものは 'flock'のような何らかのロック機構です - – Sobrique