Безопасен ли мой метод резервного копирования rsync?

Безопасен ли мой метод резервного копирования rsync?

Я сделал очень простой скрипт резервного копирования rsync, который копирует некоторые папки на USB-накопитель. Это просто для быстрого ежедневного резервного копирования.

Команда:

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

Простым решением проблем с повреждением и удалением является использование надлежащей процедуры резервного копирования. Поменяйте местами три (или более) USB-флешки, используя самую старую «резервную» в качестве подключенной флешки, когда вы запускаете эту команду раз в неделю. Таким образом, если вы обнаружите повреждение до того, как начнете циклически переключать USB-диски, вы сможете восстановить его. Это известно как FIFO (First In, First Out).

Существуют и другие, более сложные схемы, все из которых совместимы с вашим методом резервного копирования. Учебник по некоторым из них доступен в Википедии по следующей ссылке:

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

Связанный контент