rsync: один слеш и флаг --delete
Слеш в конце источника меняет смысл команды. --delete без пробного прогона — плохая идея.
Слеш в конце пути-источника решает, что копируется: сам каталог или его содержимое.
rsync -a src dst/ # получится dst/src/...
rsync -a src/ dst/ # получится dst/...
Для получателя слеш значения не имеет, для источника — принципиальное.
--delete только после пробного прогона
С --delete rsync удаляет в получателе всё, чего нет в источнике. Ошибка в пути — и бэкап превращается в пустой каталог.
rsync -a --delete -n -i src/ dst/
-n ничего не меняет, а -i печатает, что было бы сделано: строки *deleting сразу видны. Только после просмотра — тот же запуск без -n.
Для удалённых копий полезен --partial, чтобы прерванная передача большого файла продолжилась, а не началась заново.