Існує кілька способів виконувати команди або сценарії на декількох віддалених машинах Linux. Один найпростіший і найпростіший спосіб - через pssh (паралельна програма ssh)
pssh : це програма для паралельного виконання ssh на ряді хостів. Він надає такі функції, як надсилання вхідних даних для всіх процесів, передача пароля в ssh, збереження вихідних даних у файлах та тайм-аут.
Приклад і використання:
Підключіться до хоста1 та хоста2 та надрукуйте "привіт, світе" з кожного:
pssh -i -H "host1 host2" echo "hello, world"
Запустіть команди через сценарій на декількох серверах:
pssh -h hosts.txt -P -I<./commands.sh
Використання та запуск команди без перевірки та збереження ключів хоста:
pssh -h hostname_ip.txt -x '-q -o StrictHostKeyChecking=no -o PreferredAuthentications=publickey -o PubkeyAuthentication=yes' -i 'uptime; hostname -f'
Якщо у файлі hosts.txt є велика кількість записів, скажімо 100, тоді паралельність також може бути встановлена на 100, щоб забезпечити одночасне виконання команд:
pssh -i -h hosts.txt -p 100 -t 0 sleep 10000
Параметри :
-I: Зчитування введення та надсилання кожному процесу ssh.
-P: говорить pssh для відображення вихідних даних у міру надходження.
-h: читає файл хоста.
-H: [user @] host [: port] для одного хоста.
-i: Відображення стандартного виводу та стандартної помилки під час завершення кожного
аргументу -x аргументи: передає додаткові аргументи командного рядка SSH -опція
: Може використовуватися для надання опцій у форматі, що використовується у файлі конфігурації. (/ etc / ssh / ssh_config ) (~ / .ssh / config)
-p паралелізм: Використовуйте вказане число як максимальну кількість одночасних з'єднань
-q Тихий режим: спричиняє придушення більшості попереджувальних та діагностичних повідомлень.
-t: Зробіть час очікування зв’язку через задану кількість секунд. 0 означає, що pssh не таймаує жодного з’єднання
Коли ssh'ing на віддалену машину, як обробляти запит на аутентифікацію за відбитками пальців RSA.
Вимкніть StrictHostKeyChecking для обробки запиту автентифікації RSA.
-o StrictHostKeyChecking = ні
Джерело : man pssh