Зеркальное копирование с помощью rsync

Есть следующая система:

Около 20 хостов, с которых копируются 3 директории сертбота - renewal, live, archives. Все копируется на один резервный хост, на который переключается проект, в случае падения основного сервера. Если со старыми сертами доменов сертботу живется хорошо, то вот от конфигов в renewal ему рвет крышу, и тест вебсервера(nginx) фейлится. Бекапится все с помощью скрипта с rsync-ом. Есть ли возможность сделать зеркальное копирование директории renewal? Т.е. если я удалю домен test.com, должен удалиться домен на основном хосте, а при попытке сделать бекап, rsync чекает, что такого файла нет и тоже его удаляет на резервном хосте.


Ответы (1 шт):

Автор решения: aleksandr barakin

rsync чекает, что такого файла нет и тоже его удаляет на резервном хосте

для этого служит опция --delete программы rsync:

$ rsync --delete прочие-опции-и-параметры

при её наличии, если на стороне-получателе присутствует файл/каталог, а на стороне-источнике такового нет, то файл/каталог будет удалён на стороне-получателе.

согласно man-странице программы rsync, момент удаления при наличии такой опции не определён. это можно изменить, употребив вместо (или вместе) одну из уточняющих опций:

  • --delete-before — удалять до начала передачи содержимого файлов
  • --delete-during — удалять во время передачи
  • --delete-after — удалять после завершения передачи
  • --delete-delay — практически то же, что и --delete-after, за исключением использования более нового не-инкрементального алгоритма составления списка файлов на удаление.

при использовании перечисленных опций настоятельно рекомендуется сначала добавить опцию --dry-run (-n), чтобы увидеть, какие действия будут произведены программой.


доп. чтение: $ man rsync

→ Ссылка