У меня есть два жестких диска с данными на моем сервере Linux, и я использую второй в качестве резервной копии для первого диска.
я использую Rsync для этой цели. Примером может быть:
rsync -r -v --delete /media/disk1/ /media/disk2/
Это делает то, что он копирует каждый файл / каталог из / СМИ / disk1 / в / СМИ / disk2 / но также удаляет любую разницу. Например, допустим, что файлы A и B, но не файл C, включены disk1 и на disk2 нет файлов A и B, но есть C. В результате после команды на disk2 У меня были бы файлы A и B, но файл C был бы удален, как и на disk1 ,
Теперь, довольно катастрофический сценарий приходил мне в голову; Что если диск1 умирает, система продолжает работать, так как системные файлы находятся на моем системном диске, но когда rsync пытается сделать резервную копию моих данных на disk2 из сломанного disk1 удаляет все файлы из disk2 потому что он не может ничего читать на disk1 ,
Это возможный сценарий, или есть защита от него встроенного Rsync ?
Ответы:
Реально, в этом случае ядро взбесится, и вы получите кучу ошибок дискового ввода-вывода, прежде чем rsync что-нибудь удалит. Но тогда, если вы перезагрузитесь, возможно, что / media / disk1 будет пустым и размонтированным ... Итак ...
В вашем скрипте rsync просто убедитесь, что вы не запускаете rsync, если в / media / disk1 нет файлов. Простой способ сделать это будет:
Это приведет к завершению работы сценария перед запуском rsync в случае, если целевой файл не существует.
источник
Из руководства по rsync:
источник