1

Я могу запускать команды параллельно в списке машин, используя команду pssh . Например, чтобы создать папку foo на нескольких машинах, перечисленных в hosts.txt я могу запустить:

pssh -h hosts.txt -l MyUserName "mkdir foo"

Но так как команде требуется больше аргументов (то есть использование открытого ключа для аутентификации и т.д.), Я попытался создать следующий скрипт bash bar.sh , так что команда, которую я хочу выполнить, просто дается в качестве аргумента скрипту:

#!/bin/bash
pssh -h hosts.txt -l MyUserName "$@"

Но запуск bar.sh mkdir foo замораживает терминал, даже я не могу убить его с помощью Ctrl+C.

Есть идеи?

1 ответ1

0

Я не слишком знаком с pssh . Вы получаете ту же ошибку, если используете GNU Parallel:

#!/bin/bash
parallel -j10 --slf hosts.txt --nonall "$@"

Поместите имя пользователя в hosts.txt:

myuser@host1
myuser@host2

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