rsync --remove-source-filesは、ソースファイルを1つずつ削除するか、rsyncの完了後に削除しますか?


23

フォルダーの内容を別のマシンにコピーするアプリケーションにrsyncコマンドがあります。--remove-source-filesrsyncが終了した後にファイルを宛先マシンに置くことにのみ関心があるため、オプションがあります。

しかし、ファイルの転送中にクラッシュしたり中断されたりした場合、rsyncがどのように動作するのか疑問に思っていましたか?

同期する2つのファイルがあるaとしbます。コピーをrsyncをしますa、その後、ソースからそれを削除し、コピーを開始しb、またはそれは両方のを待つことになるab、それらの両方を削除する前に宛先マシンにコピーしますか?いくつかのフラグを使用して無関係なファイルを削除するときにこの動作を設定できることを見てきましたが、ソースファイルの削除については何も見つかりませんでした。


stackoverflow.com/questions/7380234/に似ていますが、Kyleは正しいと思いますが、rsyncはすべてのファイルの完了を待機しているように見えますが、完了前にファイルを削除することもあります。まだ少し混乱しています。
Chris2048

回答:


16

rsyncコードを確認すると、ソースファイルは送信と同時に削除されますが、すぐには発生しない場合があります。rsyncは操作を多重化するため、ファイルが正常に受信された(したがって削除できる)というメッセージは、他のデータの背後にバッファリングされる場合があります。


2
以下の私の答えによると、いくつかのファイルで試してみましたが、完全な操作が成功した場合にのみファイルが削除されました。それは、あなたが見つけた「transfer OK」シグナルは、完全な操作が成功した場合にのみ浸透すると思わせます。
ダニエルアンダーソン

5
数個以上のファイルで試してみると、転送全体が完了する前にソースファイルが消えてしまいます。
カイルジョーンズ

ディレクトリや再帰的なオプションを指定するとき、それはすぐに削除されていない内のファイル、そのように見える
アンドレホルズナー

4

私はそれを試しました(そして、あなたは簡単にそれをすることができます、確かに)。すべてのファイルが正常に転送された後それらは削除されます。転送が中断されたり、別のエラーが発生した場合、たとえそれらの一部が正常に転送されたとしても、ソースファイルは削除されません。

編集:カイルジョーンズの答えによると、多くのファイルが関係している場合、ケースは異なる場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.