完全なファイルでのみ動作

完全なファイルでのみ動作

FTP経由でファイルをアップロードするコンピュータがあります。このコンピュータで同じネットワーク上の別のコンピュータでcronjobとscp / rsyncを実行したいのですが(コピーするだけです)。

問題は、不完全なファイルをコピーしたくないということです(まだ転送中です)。別のサーバーにコピーする前にファイルが完成したことを確認できますか?

答え1

あなたはそれを使用することができます同期:

Lsyncdは、ローカルディレクトリツリーイベントモニタインタフェース(inotifyまたはfsevents)を監視します。数秒間イベントを集計して結合し、プロセスを作成して変更を同期します。デフォルトではこれはrsyncです。

指定できます停止する後でファイルへの変更が同期されます。たとえば、通常のアップロード時間の5倍に設定すると大丈夫でしょう。

答え2

もしlsyncdについての考え気に入らない。なぜなら」一般的なアップロード時間「アップロードサイズの広い範囲(32Kから1234Tまで)を考慮しなくても、インターネットなどのメディアには明らかに問題があります。FTP転送の再開。まあ、私の考えでさえあなたには役に立たないと思います。しかし、どのように使用するかラソフ? ! ?

lsof /home/ftp

まあ、lsyncdドキュメントを注意深く読んだ後、私の懸念は」一般的なアップロード時間" - 根拠がないようです。監視するデフォルトのinotifyは"CloseWrite"であり、まともなようです。YMMV。

関連情報