1

У меня есть список файлов и мест назначения, которые мне нужно синхронизировать с rsync, но я не хочу запускать rsync несколько раз для этого (время соединения большое из-за использования ssh в моем случае).

Пример:

   ~/aaa    remote:/~/aaa
   ~/bbb    remote:/~/otherplace/bbb
   …

Как вы можете себе представить, список больше, и в моем случае мне нужно запустить один и тот же набор с несколькими удаленными серверами.

Как я могу реализовать это легко? Я хочу, чтобы rsync запускался один раз для каждого сервера.

2 ответа2

1

Однажды я быстро исправил это, когда мне захотелось разобрать это поведение в существующем скрипте rsync, который переносился только в определенную папку: я создал каталог символических ссылок для этой цели с обеих сторон и сказал rsync разыменовать ссылки (-L) во время передачи. С моей стороны, ссылки были разыменованы в их содержимом и перенесены в каталог на удаленной стороне, где они были помещены в символические ссылки, которые указывали на каталоги, где я их хотел.

На самом деле это не самый плохой способ указать файлы для резервного копирования. Он универсален и легко настраивается без изменения файлов конфигурации (ну, в некотором смысле, структура символических ссылок - это файл конфигурации).

Этот конкретный пример не является хорошим решением , если вы хотите , чтобы не разыменования ссылки на передачу в некоторых случаях, однако.

0

Если проблема в ssh, то, возможно, вы можете ускорить процесс, повторно используя соединение ssh, поместив это в ~/.ssh/config или в другой соответствующий файл конфигурации ssh:

Host *
  ControlMaster auto
  ControlPath /tmp/%r@%h:%p

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