Параллельное выполнение sh скрипта на нескольких серверах [дубликат]

Макросы RPM имеют ассоциированный уровень, который является глубиной рекурсии.

При возврате из рекурсивного расширения макросы на этом уровне автоматически становятся неопределенными.

Макросы с уровнем <= 0 всегда определены (в некотором смысле глобальны).

Отрицательные значения уровней изначально использовались для того, чтобы отметить, где макросы были определены: из внутреннего rpm или из чтения конфигурационного файла.

На практике ничто в RPM никогда не использовало и не нуждалось в макроуровне.

Но именно это и означает "-14".

А также изменение ":" на "=" в выводе --showrc, которое говорит о том, какие макросы были определены или использованы.

5
27.10.2016, 16:21
2 ответа

Использовать параллельный GNU:

parallel -S host1,host2 --nonall uname -a

Если задача более сложная, создайте функцию:

do_actions() {
   action
   packed
   function
}
export -f do_actions
HOSTS="host1,host2"
parallel -S $HOSTS --ssh 'ssh -l '$USERNAME --nonall --env do_actions do_actions

Если имя пользователя такое же, как whoami , этого достаточно:

parallel -S $HOSTS --nonall --env do_actions do_actions

GNU Parallel не нужно устанавливать глобально: если он не устанавливается, вы можете выполнить персональную установку.

wget pi.dk/3
bash 3
1
27.01.2020, 20:42

pdsh , похоже, удовлетворит ваши потребности. Выполняет ssh-соединения параллельно, в многопоточном режиме.

Пример:

$ pdsh -w 192.168.1.4,192.168.1.250 uname -r
192.168.1.4: 2.6.32-431.17.1.el6.x86_64
192.168.1.250: 2.6.32-431.11.2.el6.x86_64
$

Параллельная оболочка с pdsh

Как я могу отправить один файл на несколько удаленных сайтов одновременно?

1
27.01.2020, 20:42

Теги

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