У меня есть две Linux-коробки, которые я хотел бы синхронизировать. Я вижу параметр -avz синхронизирует удаленный с локальным, но новые локальные файлы не выдвигаются. Как мне это сделать?
2 ответа
rsync - это односторонняя синхронизация, и кажется, что вам нужна двусторонняя синхронизация (файлы в обоих местах могут меняться). Есть и другие инструменты для этого - унисон один.
- В отличие от простых утилит зеркалирования или резервного копирования, Unison может работать с обновлениями обеих реплик распределенной структуры каталогов. Обновления, которые не конфликтуют, распространяются автоматически. Конфликтующие обновления обнаруживаются и отображаются.
- Unison работает между любой парой компьютеров, подключенных к Интернету, общаясь по прямой линии сокета или туннелируя по зашифрованному соединению ssh. Он осторожен с пропускной способностью сети и хорошо работает на медленных каналах, таких как соединения PPP. Передача небольших обновлений в большие файлы оптимизируется с использованием протокола сжатия, аналогичного rsync.
- Унисон устойчив к неудачам. Осторожно всегда оставлять реплики и собственные частные структуры в разумном состоянии, даже в случае ненормального завершения или сбоев связи.
- Унисон свободен; полный исходный код доступен по открытой лицензии GNU.
rsync (несмотря на то, что он называется "sync") только односторонний. Вы можете удалить файлы из целевого каталога, которых нет в исходном каталоге, но вы не можете одновременно загружать и извлекать файлы в обоих направлениях (вам просто нужно снова запустить rsync с заменой исходного и конечного каталогов; Я бы также рекомендовал опцию -u
чтобы только более новые файлы перезаписывали старые).
См. Также: Rsync, двусторонняя синхронизация и синхронизация операций удаления файлов.