私のラップトップのいくつかのディレクトリを外付けハードドライブにバックアップしたいと思います。
外付けハードドライブのターゲットには、すでに自分のラップトップにあるディレクトリの以前のバックアップがあります。
外付けハードドライブのバックアップを更新する方法を知りたいです。たとえば、次のコマンドは期待どおりに機能しますか?
rsync -a --delete /path/to/source/dir /path/to/dest/dir
rm -r /path/to/dest/dir/*
最初は私と同じように動作しますかrsync -a /path/to/source/dir /path/to/dest/dir
?rsync
ターゲットで以前のバックアップを活用してエラーなしで新しいバックアップをすばやく作成するにはどうすればよいですか(一部のファイルは最後のバックアップ以降に変更された可能性がありますが、それ以上のファイルは変更されません)。以前のバックアップを利用するもう1つの理由は、何も削除せずに新しいバックアップを保存するための外付けハードドライブの容量が不足しているためです。
ありがとうございます。
答え1
はい、rsync
それは良い解決策ですが、使用する方が良いです(末尾のスラッシュを参照)。
rsync -a --delete /path/to/source/dir/ /path/to/dest/dir/
引用するにはman rsync
:
ソースの末尾のスラッシュは、ターゲットに追加のディレクトリレベルが生成されないようにこの動作を変更します。ソースの末尾/を「名前でディレクトリをコピーする」ではなく、「このディレクトリの内容をコピーする」と考えることができます[...]
ミラー(まったく同じファイル)を使用すると、--delete
ミラーがない場合は追加のバックアップを取得できます(ソースから削除されたファイルはコピーに残ります)。
--delete
間違ったディレクトリをターゲットにすると、多くのファイルが削除される可能性があるため、テスト済みのスクリプトにのみ使用を制限するか、-n
/を使用して--dry-run
最初に何が起こるかを確認するのが最善です。
答え2
- ターゲットで以前のバックアップを利用して、rsyncにエラーなしで新しいバックアップをすばやく作成させるにはどうすればよいですか(一部のファイルは最後のバックアップ以降に変更された可能性がありますが、それ以上のファイルは変更されません)。
デフォルトでは、バックアップはrsync
これを行います。もしあなたは合格しました-a
(そして正しいパスを見つけるために@xenoidの答えに従いました)。とにかく合格したい-a
ので、みんないいですね。具体的な理由は少し微妙です。
Rsyncは、サイズまたは最後の変更時間が変更されたファイルを検索する「クイックチェック」アルゴリズム(デフォルト)を使用して、転送する必要があるファイルを見つけます。
rsyncがファイルを転送する必要がないと思う場合、ファイルを転送しません。これは、次のオプションが暗示されているために機能します-a
。
-t, --times preserve modification times
したがって、最後に変更された時間は同じバックアップファイルの内容は元のファイルの内容と同じです。
間違えないでください
rsync
ファイルの内容を修正してから、最後の修正時間をリセットして偽にしないでください。 :-).それ以外の場合、ファイルは無視されます。
私はこの問題について聞いたことがないので心配しません。rsync
この方法は通常、デフォルトのバックアップに使用されます。
他の制限が発生する可能性が高いと予想されます。つまり、ファイルシステムのスナップショットを使用せずに$ HOMEをバックアップすると、バックアップの実行中にFirefoxプロファイルが変更され、バックアップで一貫して機能するFirefoxプロファイルが得られない可能性があります。または、削除/上書きしたファイルを復元したいが、以前のバックアップを保持していないため、バックアップから削除/上書きすることができます。