Pssh (Parallel SSH) — мощный инструмент для одновременного выполнения команд на множестве Linux серверов через SSH. Он идеально подходит для системных администраторов, управляющих кластерами или группами серверов. В этой статье вы узнаете, как установить pssh и эффективно его использовать.
Установка pssh
Debian/Ubuntu
sudo apt update
sudo apt install pssh -y
CentOS/RHEL
установка EPEL-репозиторий, затем pssh:
sudo yum install epel-release -y
sudo yum install pssh -y
Подготовка к работе
Сохраните список серверов в файле (например, hosts.txt):
echo "user@server1
user@server2
192.168.1.10" > ~/hosts.txt
Настройте SSH-ключи для входа на серверы без пароля:
ssh-keygen -t rsa
ssh-copy-id user@server1
– повторите для каждого хоста из списка
Основные команды pssh
pssh — выполнить команду на нескольких серверах
pssh -h <файл_с_хостами> -l <пользователь> -i "<команда>"
пример:
pssh -h ~/hosts.txt -l root -i "uptime"
pscp — копирование файлов на удаленные серверы
pscp -h <файл_с_хостами> -l <пользователь> <локальный_файл> <удаленный_путь>
пример:
pscp -h ~/hosts.txt -l user /local/path/file.txt /remote/path/
prsync — синхронизация директорий
prsync -h <файл_с_хостами> -l <пользователь> -r <локальная_директория> <удаленный_путь>
пример:
prsync -h ~/hosts.txt -l user -r /local/dir/ /remote/dir/
pnuke — завершение процессов
пример:
pnuke -h ~/hosts.txt -l user "nginx"
pslurp — сбор файлов с серверов
pslurp -h <файл_с_хостами> -l <пользователь> -L <локальная_папка> <удаленный_файл> <локальное_имя>
пример:
pslurp -h ~/hosts.txt -L /backup/ /var/log/app.log app_log
Примеры использования pssh
Обновление всех серверов (Debian/Ubuntu):
pssh -h hosts.txt -i "sudo apt update && sudo apt upgrade -y"
Проверка свободной памяти:
pssh -h hosts.txt -i "free -h"
Массовая перезагрузка:
pssh -h hosts.txt -i "sudo reboot"
Советы и рекомендации
Обработка ошибок: используйте -t <секунды> для таймаута.
Добавьте -o <папка> для сохранения вывода каждого хоста в отдельный файл.
Безопасность:
– всегда используйте SSH-ключи вместо паролей;
– для ввода пароля добавьте -A, но избегайте этого в автоматизированных скриптах.
Альтернативы pssh:
Если pssh недоступен, рассмотрите Ansible, Fabric или ClusterSSH.
Pssh упрощает управление множеством серверов, экономя время на рутинных задачах. Освоив его основные команды, вы сможете эффективно администрировать инфраструктуру любого масштаба.