
いくつかのフォルダを 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