Я сделал резервную копию веб-сервера Linux, используя rsync с cygwin. Теперь у меня есть идеальная копия сервера на моем ноутбуке с Windows. Если я удалю или изменю файл на своем ноутбуке и снова запущу rsync с помощью cygwin, удалит ли / обновит тот же файл на сервере? У меня сложилось впечатление, что если я удалю / изменю на сервере и запустил rsync на моем ноутбуке, он удалит / изменю локальный файл на моем ноутбуке, но работает ли это в обратном порядке?
Rsync выполняет одностороннюю синхронизацию, однако вам решать, в каком направлении будет выполняться синхронизация.
Синтаксис команды Rsync следующий:
rsync [OPTION...] SRC... [DEST]
Обратите внимание, что вы указываете синхронизацию от источника к месту назначения. Источник и место назначения могут быть любым локальным или удаленным путем.
Например, если вы хотите скопировать файлы со своего сервера на ноутбук, вы делаете:
rsync [OPTION...] <server-path> <laptop-path>
Чтобы выполнить синхронизацию в обратном направлении:
rsync [OPTION...] <laptop-path> <server-path>
Итак, чтобы ответить на ваш вопрос: это зависит от того, как вы выполняете rsync.
Если вы хотите, чтобы файлы удалялись в месте назначения, вам необходимо использовать --delete
вариант. Но будьте осторожны с этим, потому что, если вы сделаете ошибку при указании источника, вы в конечном итоге удалите все в своем месте назначения. Безопаснее проверить синхронизацию без --delete
вариант, и как только вы будете довольны тем, как он работает, вы можете добавить --delete
вариант.
Как было предложено Masegaloeh в комментариях ниже, -n
или --dry-run
вариант также может использоваться для проверки rsync
командное поведение.
Инструмент-оболочка, написанный на python3, называется bsync
который обертывает find
и rsync
команда упрощает задачу. Репозиторий на Github: https://github.com/dooblem/bsync
Не бойтесь, когда он находится на github (то есть так, как вы думаете, что вы должны быть программистом, чтобы использовать этот инструмент).
рассмотрите возможность использования --delete-after, а не --delete, это гарантирует, что ваша принимающая сторона удалит файлы после передачи, а не до.