У меня есть файл, который я хочу отправить на несколько отдельных серверов. Можно ли назвать несколько мест назначения?
rsync foo.png server1:foo.png server2:foo.png
Это дает мне «Неожиданный удаленный arg: server1: foo.png
Нет, невозможно rsync
указать несколько адресатов. Вам нужно будет вызвать команду несколько раз. Если у вас много целей, вы можете вместо этого рассмотреть возможность использования сетевой файловой системы - она лучше подходит для вашей проблемы.
Оказывается, есть программа, которая разрешает это, но не оригинальная программа rsync. Это называется pssh (параллельный ssh, я полагаю)
Одна из особенностей:
«- Parallel rsync (Параллельный rsync, восходящий называет его prsync), эффективно копирует файлы на несколько хостов параллельно»
- http://www.ubuntugeek.com/execute-commands-simchronously-on-multiple-servers-using- psshcluster-sshmultixterm.html
Хотя вы вызываете команду несколько раз посредством ввода файла, это можно сделать, указав нужные места назначения в одном желаемом файле:
while read in; do rsync -av /Path/of/Source/Synced.file "$in":/Path/of/Destination/Synced.file; done < destinations.txt
Прошу прощения за мой тест, так как в то время у меня было только две системы, но я уверен, что при желании это будет работать для нескольких систем. Я полагаю, что это не самый элегантный метод, но это определенно один из способов автоматизации. И, пожалуйста, не стесняйтесь исправлять меня, если это не сработает, поскольку у меня нет ресурсов для тестирования за пределами двух систем на данный момент.