Я зарезервировал веб-сервер linux, используя rsync с cygwin. Теперь у меня есть идеальная копия сервера на моем ноутбуке с Windows. Если я удаляю или изменяю файл на своем ноутбуке и снова запускаю rsync с помощью cygwin, удалит ли он / обновит тот же файл на сервере? У меня сложилось впечатление, что если я удаляю / изменяю на сервере и запускаю rsync на своем ноутбуке, он будет удалять / изменять локальный файл на моем ноутбуке, но работает ли это в обратном порядке?
25
unison
. Это инструмент синхронизации, который сохраняет состояние файла на обеих копиях и, таким образом, позволяет осуществлять двунаправленную синхронизацию. Существует также пакет Cygwin.Ответы:
Rsync выполняет одностороннюю синхронизацию, однако вам решать, каким образом будет выполняться синхронизация.
Синтаксис команды Rsync следующий:
Обратите внимание, что вы указываете синхронизацию от источника к месту назначения. Источником и получателем может быть любой локальный или удаленный путь.
Например, если вы хотите скопировать файлы с вашего сервера на ноутбук, вы делаете:
Для синхронизации в обратном направлении вы делаете:
Итак, чтобы ответить на ваш вопрос: это зависит от того, как вы выполняете rsync.
Если вы хотите, чтобы файлы были удалены в месте назначения, вам нужно использовать
--delete
опцию. Но будьте осторожны с этим, потому что, если вы допустите ошибку при указании вашего источника, то в конечном итоге вы удалите все в своем месте назначения. Безопаснее--delete
сначала проверить свою синхронизацию без опции, а когда вы будете довольны тем, как она работает, вы можете добавить--delete
опцию.Как предложено masegaloeh в комментариях ниже,
-n
или--dry-run
опция может также использоваться для проверкиrsync
поведения команды.источник
-n
или--dry-run
, чтобы вы знали, какой файл будет удален и измененИнструмент обертки написанный в Python3 называется ,
bsync
который оборачиваетfind
иrsync
команда упрощает задачу. Репозиторий Github: https://github.com/dooblem/bsyncНе пугайтесь, когда он на github (то есть, вы думаете, что для использования инструмента вы должны быть программистом).
источник
рассмотрите возможность использования --delete-after, а не --delete, это гарантирует, что принимающая сторона удалит файлы после передачи, а не до.
источник
rsync
ничего удалить. Он удаляет вещи самостоятельно. Сказав это, полезный совет для rsync'ing в целом. Спасибо.