У меня есть два сервера, и я хочу rsync файлы с обоих серверов в одном месте.

  • Сервер 1 имеет файлы A и B
  • Сервер 2 имеет файлы A и B
  • После того, как rsync сервер 3 имеет файлы A и B

Когда пользователь удаляет файл A с сервера 1 и файл B с сервера 2, на сервере 3 не должно быть никаких файлов.

Но он не работает должным образом в моей настройке:

  • rsync --delete server1 server3
  • rsync --delete server2 server3

Он удаляет первый и второй второй, но А будет снова скопирован с сервера 2. Вместо того, чтобы получить пустой каталог, я снова получаю А.

У кого-нибудь есть обойти это?

2 ответа2

0

Команда rsync, которую вы выполняете, делает server3 строгой копией любого сервера, с которого она копирует. Таким образом, он становится клоном server1 (с отсутствующим A и B там), а затем вы говорите, что он является клоном server2 (с отсутствующим A и B)

Можете ли вы вернуться на уровень и объяснить, что вы собираетесь делать здесь?

0

Ты пытался

rsync -u --delete server1 server3
rsync --delete server2 server3

Из справочной страницы rsync:

  -u, --update                update only (don’t overwrite newer files)

Будь то сервер1 или сервер2, который выполняет синхронизацию первым, он будет уважать, если файл уже находится на сервере3.

Однако обратите внимание, что вы должны поместить ваши команды rsync в 1 скрипт и поместить файл флага, чтобы указать, что синхронизация не будет работать, если запущена другая.

Дайте мне знать, если это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .