一度は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-verify
rsync --version
rsync
homebrew
--append
--append-verify
--append
--append-no-verify
--append
rsync
--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-verify
rsyncは同じサイズのすべてのファイルで動作するように動作します。変更や他のタイムスタンプが異なる場合は、ファイルを確認せずにターゲットをソースで上書きします。--checksum
同じ名前とサイズを持つ各ファイルペアの内容(チェックサム)が比較されます。
2015-09-01に更新@Alexが作成したポイントを反映するように変更されました(ありがとうございます!)
2017-07-14に更新@Jonathanが書いた点を反映するように変更されました(ありがとうございます!)