rsync к нескольким удаленным серверам

$group->{$label}->{pos1} всегда определяется, Вы inizialized это со строкой 6:

pos1 => 1e10,

так, чтобы, это работало правильно до $pos1 <= 1e10. Если Вы хотите минимальное значение печати $group->{$label}->{pos1} = 3512970000000 (как Ваш демонстрационный вход), Вы должны inizialize $group->{$label}->{pos1} = -1 (строка 6):

pos1 => -1,

и измените строку 13 с:

$group->{$label}->{pos1} = $pos1 if (($group->{$label}->{pos1} < 0) || ($pos1 < $group->{$label}->{pos1}));
10
23.12.2014, 05:24
3 ответа

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

7
27.01.2020, 20:01

Оказывается, есть программа, которая это разрешает, только не оригинальная программа rsync. Она называется pssh (параллельный ssh, я полагаю)

Одна из особенностей:

"-- Параллельная rsync (parallel-rsync, upstream называет ее prsync), эффективно копирует файлы на несколько хостов параллельно"
. - http://www.ubuntugeek.com/execute-commands-simultaneously-on-multiple-servers-using-psshcluster-sshmultixterm.html

11
27.01.2020, 20:01

Несмотря на то, что вы вызываете команду несколько раз через ввод файла, это можно сделать, указав нужные места назначения в одном нужном файле:

while read in; do rsync -av /Path/of/Source/Synced.file "$in":/Path/of/Destination/Synced.file; done < destinations.txt

enter image description here

Прошу прощения за мой тест, так как в то время у меня было доступно только две системы, но я уверен, что это будет работать для нескольких систем, как хотелось бы. Я полагаю, что это не самый элегантный метод, но это определенно один из способов автоматизации. И, пожалуйста, не стесняйтесь исправлять меня, если это не сработает, поскольку на данный момент у меня нет ресурсов для тестирования более двух систем.

0
27.01.2020, 20:01

Теги

Похожие вопросы