rsync バックアップ方法は安全ですか?

rsync バックアップ方法は安全ですか?

いくつかのフォルダを USB スティックにバックアップする非常にシンプルなバックアップ スクリプトを作成しましたrsync。これは毎日の簡単なバックアップ用です。

コマンドは

rsync -av --delete

--excludeオプションとパスが続きます。

しかし、今、これは安全ではないかもしれないことに気づきました。
ハード ドライブが破損し、一部のファイルが読み取れなくなったらどうなるのでしょうか。rsyncソースを読み取れない場合、スティック上のファイルは削除されますか。
または、より一般的には、「ハード ドライブ上のファイルを削除する」以外に、USB スティック上のファイルが削除されるシナリオはありますか。

答え1

まず、--delete背景を理解していない場合、このオプションは望ましくない破壊的な結果につながる可能性があります。たとえば、ソースが空になると、宛先にあるすべての既存のファイルが削除されたり、ソースからいくつかのファイルが削除されると、それらのファイルも宛先から削除されます。

ハードドライブが破損し、一部のファイルを読み取れなくなった場合はどうなりますか?

ソースを読み取れない場合はrsync、権限が拒否されたというメッセージが表示され、それ以上何も実行されません。そのため、保存先にある既存のファイルは安全です。

「ハードドライブ上のファイルを削除する」以外に、USB スティック上のファイルが削除されるシナリオはありますか?

USB 自体が破損しない限り、(ソース、ハード ドライブからファイルを削除しない限り) USB 上の既存のファイルがオプションによって削除されるシナリオはありませrsync--delete

テスト:

% ls -1 source dest
dest:

source:
foo

% rsync -av --delete source/ dest
sending incremental file list
./
foo

sent 143 bytes  received 38 bytes  362.00 bytes/sec
total size is 16  speedup is 0.09

% ls -1 source dest              
dest:
foo

source:
foo

% chmod 000 source 

% rsync -av --delete source/ dest
sending incremental file list
rsync: change_dir "/source" failed: Permission denied (13)

sent 20 bytes  received 12 bytes  64.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]

% ls -1 source dest              
dest:
foo
ls: cannot open directory source: Permission denied

答え2

破損や削除の問題に対する簡単な解決策は、適切なバックアップ手順を採用することです。このコマンドを毎週 1 回実行するときに、最も古い「バックアップ」を差し込んだスティックとして使用し、3 つ (またはそれ以上) の USB サムドライブを順番に使用します。こうすることで、USB ドライブを順番に使用し始める前に破損に気付いた場合、回復することができます。これは FIFO (先入れ先出し) として知られています。

他にも、より複雑なスキームがありますが、それらはすべて、バックアップ方法と互換性があります。これらのいくつかに関する入門書は、次のリンクの Wikipedia で入手できます。

https://en.wikipedia.org/wiki/Backup_rotation_scheme

関連情報