rsyncによる単一ファイルの転送を再開します


22

Ubuntuでは、rsyncを使用して、ハードドライブからリムーバブルドライブに大きなファイルをコピーします。何らかの理由で、1回の実行で操作を完了できません。そこで、rsyncを使用して、前回の場所からファイルのコピーを再開する方法を見つけようとしています。

オプション--partialまたは--inplaceを使用しようとしましたが、-progressとともに、-partialまたは--inplaceのrsyncが実際に前回残されたものからではなく、最初から開始されることがわかりました。rsyncを手動で早期に停止し、受信したファイルのサイズを確認することでも、見つけたものを確認できます。

ただし、-appendを使用すると、rsyncは前回残ったものから始まります。

マンページ--partial、-inplace、または--appendで見たように、私は混乱しています。前回残ったものからコピーを再開することに関連しているようです。誰かが違いを説明できますか?コピーの再開に--partialまたは--inplaceが機能しないのはなぜですか?コピーを再開するために、rsyncがオプション--appendで動作する必要があるのは本当ですか?

また、rsyncではなくmvまたはcpによって部分的なファイルが残された場合、rsync --appendは正しく実行されますか?

よろしくお願いします!


rsyncの仕組みについての私の理解は限られていますが、最後の質問にお答えします。cpが不完全な場合、rsyncはコピーを再開する必要があります。rsyncは、ファイルの先頭部分を同じように見つけ、ファイルの残りの部分をコピーする方法でファイルをハッシュすると考えています。
スコットマックレニング

回答:


25

rsyncのいくつかのページを見る:

--append
これにより、rsyncはファイルの末尾にデータを追加してファイルを更新します。これは、受信側に既に存在するデータが送信側のファイルの先頭と同一であると仮定します。

--inplace
このオプションは、データの更新が必要な場合にrsyncがファイルを転送する方法を変更します。ファイルの新しいコピーを作成し、完了時に所定の場所に移動するデフォルトの方法の代わりに、rsyncは更新されたデータを直接ファイルに書き込みます宛先ファイル。

--partial
デフォルトでは、rsyncは、転送が中断された場合、部分的に転送されたファイルを削除します。状況によっては、部分的に転送されたファイルを保持する方が望ましい場合があります。

ファイルが非常に大きい場合は、を使用するように聞こえます--partial --append。(を--append意味します--inplace)この大きなファイルが変更された場合、ドロップする--appendと、rsyncはファイルの先頭をチェックして、ソースファイルと一致することを確認します。 --inplace大きなファイルをrsyncしている場合は、rsyncで先頭部分の新しい一時ファイルを作成し、転送を続行し、古いファイルを削除して新しいファイルを配置したくない場合を除き、私には危険に思えます。同じファイルを使用できる場合、転送に必要なディスク容量が少ないことは言うまでもなく、転送は高速になります。

また、ファイル転送の観点から見ると、コピーはrsyncよりも高速です。ただし、ファイルを更新する必要がある場合は、ファイル全体を再度転送するよりもrsyncでファイルを高速に同期しました。(上で言ったように)Rsyncはcpから再開できるはずです。

これがお役に立てば幸いです。



デフォルトでより高速なcpを使用することの良い点と、壊れたcpプロセスを「修復」するためのrsync!きちんとした:)
サミュエルランパ14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.