Как указать большой список файлов, которые нужно синхронизировать с rsync?

Как указать большой список файлов, которые нужно синхронизировать с rsync?

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

Пример:

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

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

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

решение1

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

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

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

решение2

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

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

Связанный контент