Иногда в ходе работ появляется задача запустить какую-то команду на нескольких серверах одновременно, либо отправить на неколько серверов какой-то файл. Например на VPN серверы раскидать обновлённый конфиг и перезапустить OpenVPN после этого. Не всегда есть возможность (и необходимость) ставить для этого полноценную систему управления конфигурациями. В таких случаях на выручку приходит простая утилита pssh.



1. Создаём для утилиты список хостов, с которыми будем работать:



$ cat ./hosts.pssh

[email protected]:2222

[email protected]:2222



2. И выполняем команду (на них предварительно должна быть настроена авторизация по ключам):



$ pssh -i -h ./hosts.pssh uptime



3. Для копирования файлов на несколько серверов выполняем:



$ pscp.pssh -h ./hosts.pssh ./test12345.txt /tmp/



Если авторизация по ключам на серверах не настроена, можно воспользоваться sshpass и автоматизровать при этом ввод пароля. Подробнее об этом можно прочитать в заметке на сайте.



#будничное #ssh