簡単に言うと:

簡単に言うと:

一度はrsync大量のファイルをコピーしましたが、オペレーティングシステム(Ubuntu)が予期せず再起動されました。

sudo rsync -azvv /home/path/folder1/ /home/path/folder2

再起動後にrsync再実行してみましたが、ターミナル出力結果以前にコピーしたrsync内容がコピーされ続けていることを確認しました。ところが、ソースとターゲットの違いを見つけることは可能だと聞いたので、rsync違いだけをコピーすればいいです。

ソースとターゲットの両方がNTFSです。ソースは外付けHDD、ターゲットは内蔵HDDです。

rsync私の場合は、前回残りの部分を復元できるかどうか疑問に思います。

ベストアンサー1

まず、質問の「復元」部分については--partial受信側に部分的に転送されたファイルを保管するよう指示し、転送側が消えたら完全に転送されたようになります。

ファイルが転送されると、そのファイルはターゲットフォルダ(たとえば.TheFileYouAreSending.lRWzDC)に隠されたファイルとして一時的に保存されるか、スイッチを設定した場合は特別に選択したフォルダに保存されます--partial-dir。転送が失敗し、設定されてい--partialない場合、隠されたファイルは対応する不思議な名前でターゲットフォルダに残りますが、設定するとファイル名が実際のターゲットファイル名(この場合)--partialに変更されます。TheFileYouAreSending不完全。要点は、--append後でrsyncを再利用または実行して転送を完了できることです--append-verify

だから--partialいいえそれ自体失敗したかキャンセルした転送を再開します。これを復元するには、次の実行時に上記のフラグのいずれかを使用する必要があります。したがって、通常のように見えますが、実際には不完全なファイルがターゲットに含まれないようにする必要がある場合は、この方法を使用しないでください--partial。そして、後で移行を完了できることを知っていれば、--partial私は助けることができますか?

--append上記のスイッチと同様に、このスイッチも使用するかどうかにかかわらず、実際の「回復」スイッチです。実際に--partialこのスイッチを使用しても一時--appendファイルは生成されません。ファイルはターゲットに直接書き込まれます。この場合、--append転送失敗と同じ結果が得られますが、隠された一時ファイルは生成されません。--partial

したがって、要約すると、大容量ファイルを移動し、キャンセルまたは失敗したrsync操作を停止した正確な時点で再開するオプションが必要な場合は、次の試みまたはスイッチを使用する必要がありますrsync--append--append-verify

@Alexが以下に指摘したように、バージョン3.0.0以降、そのスイッチが存在する前と同じように動作するrsync新しいオプションがあります。これはおそらくあなたがいつもあなたが望む動作です。したがって、バージョンを確認してください。 Macを使用していてfromを使用していない場合(少なくともEl Capitanまで)、以前のバージョンを使用するので、代わりにそのバージョンを使用する必要があります。なぜ彼らが新しい人に名前を付けるのではなく、このような行動を続けなかったのかは、やや疑問です。いずれにしても、以前のバージョン3は最新バージョンと同じです。--append-verify--append--append-verifyrsync --versionrsynchomebrew--append--append-verify--append--append-no-verify--appendrsync--append-verify

--append-verify危険ではありません。単に同じと仮定するのではなく、常に両端のデータを読み取って比較します。これにはチェックサムを使用するため、ネットワークでは簡単ですが、宛先に加えて実際に転送を再開するには、回線の両端で共有されるデータ量を読み取る必要があります。

第二に、「rsyncがオリジナルとターゲットの違いを見つけることができるので、違いをコピーするだけだと聞きました」と言いました。

はい、増分転送と呼ばれますが、別の意味です。この機能を有効にするには-c、または--checksumスイッチを追加してください。このスイッチを使用すると、rsync は行の両端にファイルがあることを確認します。これをチャンクで行い、両端のチェックサムを比較し、異なる場合はファイルの他の部分のみを送信します。しかし、@Jonathanが以下で指摘したように、比較はファイルの両端のサイズが同じ場合にのみ実行されます。サイズが異なると、rsyncはファイル全体をアップロードして同じ名前のターゲットを上書きします。

最初は両端でいくつかの計算が必要ですが、非常に大きなファイルや通常は小さな変更を含む固定サイズのファイルを頻繁にバックアップする場合は、ネットワーク負荷を軽減するのに非常に効果的です。浮上の例には、仮想マシンまたはiSCSIターゲットに使用される仮想ハードドライブイメージファイルがあります。

--checksumまったく新しいファイル配置をターゲットシステムに転送するためにこれを使用する場合、rsyncはファイルを転送する前にソースシステムでチェックサムを計算し続けることに注意する価値があります。なぜ知らない:)

簡単に言うと:

rsync を頻繁に使用して「A から B への項目の移動」を行い、その操作をキャンセルして後で再起動するオプションが必要な場合は、いいえを使う--checksumする使用--append-verify

rsyncを頻繁に使用してアイテムをバックアップする場合は、サイズが大きくなりますが、作成後--append-verifyにほとんど変更されない大容量ファイルの送信に慣れていない限り、rsyncを使用することはおそらく大きな助けにはなりません。追加のヒントとして、スナップショット対応ストレージ(例:btrfsまたはzfs--inplace

を使用すると、--append-verifyrsyncは同じサイズのすべてのファイルで動作するように動作します。変更や他のタイムスタンプが異なる場合は、ファイルを確認せずにターゲットをソースで上書きします。--checksum同じ名前とサイズを持つ各ファイルペアの内容(チェックサム)が比較されます。

2015-09-01に更新@Alexが作成したポイントを反映するように変更されました(ありがとうございます!)

2017-07-14に更新@Jonathanが書いた点を反映するように変更されました(ありがとうございます!)

おすすめ記事