Я написал сценарий резервного копирования для автоматизации резервного копирования с помощью rsync
. В целях обслуживания я сохранил все необходимые параметры в массиве и использовал его при фактическом вызове rsync
.
Для большей наглядности каждая опция имеет отдельную строку внутри объявления массива. Однако я совершил большую ошибку, завершив каждую строку /
вместо правильного \
.
Команда rsync
, которую затем запускал мой сценарий, в основном оказалась примерно такой:
rsync --verbose / --recursive / --archive / --progress source_folder destination_folder
следующая ошибка заключалась в том, чтобы не использовать - пробный прогон
, но, к счастью, я достаточно быстро нажал Ctrl + C скрипт, пока он все еще строил список файлов и имел много ошибок с сообщением Permission denied (13 )
.
Это подводит меня к моему вопросу: если вы попробовали указанную выше команду (с - dry-run
), вы могли заметить, что rsync
проходит все из /
как я предполагаю /
(ошибочно?) Используется в качестве источника и назначения.
Однако, если я попытаюсь бежать
rsync --verbose test1 / --recursive test2 / --archive / --progress source_folder destination_folder
, вместо test1
и test2
, интерпретируемых как источник и назначение , rsync
снова начинает обход с /
. Почему?
Я не знаю, полностью ли исходная_папка
и папка-адресат
полностью игнорируются или используются позже, поскольку я выхожу из сценария каждый раз, пока rsync
строил список файлов.
Кроме того, что могло бы пойти не так, если бы я не прервал начальный прогон, в котором /
используется в качестве источника и назначения? Будет ли rsync
перезаписывать каждый файл самим собой?
Вы указываете rsync использовать параметры --verbose --recursive --archive -- progress
с исходными папками test1/ test2/ / исходная_папка
и папка назначения целевая_папка
, если это уже помогает. (Кроме того, вы можете рассмотреть возможность удаления завершающей косой черты в именах тестовых папок, чтобы получить полную папку, а не только содержимое)