PSSH — запуск команд на нескольких удаленных системах Linux
Нет сомнений в том, что OpenSSH — один из наиболее широко используемых и мощных инструментов, доступных для Linux, который позволяет безопасно подключаться к удаленным системам Linux через оболочку и позволяет безопасно передавать файлы в удаленные системы и из них.
Но самым большим недостатком OpenSSH является то, что вы не можете выполнить одну и ту же команду на нескольких хостах одновременно, а OpenSSH не разработан для выполнения таких задач.
Здесь вам пригодится инструмент Parallel SSH или PSSH — приложение на основе Python, которое позволяет выполнять команды на нескольких хостах одновременно.
Инструмент PSSH включает параллельные версии OpenSSH и связанных с ним инструментов, таких как:
- pssh – программа для параллельного запуска ssh на нескольких удаленных хостах.
- pscp – программа для параллельного копирования файлов на несколько хостов.
- prsync – программа для эффективного параллельного копирования файлов на несколько хостов.
- pnuke – параллельно убивает процессы на нескольких удаленных хостах.
- pslurp – параллельно копирует файлы с нескольких удаленных хостов на центральный хост.
Эти инструменты хороши для системных администраторов, которым приходится работать с большими группами узлов в сети.
Установите PSSH или параллельный SSH в Linux
В этом руководстве мы рассмотрим шаги по установке последней версии программы PSSH (т. е. версии 2.3.1) в дистрибутивах на основе RHEL, таких как Fedora, CentOS Stream. , Rocky & AlmaLinux и дистрибутивы на основе Debian, такие как Ubuntu и Linux Mint, с помощью команды pip.
Команда pip — это небольшая программа (замена сценария easy_install) для установки и управления индексом пакетов программного обеспечения Python.
О дистрибутивах на основе RHEL
В дистрибутивах RHEL вам необходимо сначала установить пакет pip (т. е. python-pip) в вашей системе, чтобы установить PSSH. программа, использующая yum или dnf.
yum install python-pip
OR
dnf install python-pip
После установки инструмента pip вы можете установить пакет pssh с помощью команды pip, как показано ниже.
pip install pssh
О дистрибутивах на основе Debian
В дистрибутивах на основе Debian установка pssh с помощью команды pip занимает минуту.
sudo apt install python-pip
sudo pip install pssh
Как использовать pssh в Linux?
При использовании pssh вам необходимо создать файл хоста с указанием количества хостов, а также IP-адреса и номера порта, которые вам необходимы для подключения к удаленным системам с помощью pssh.
Строки в хост-файле имеют следующую форму и могут также включать пустые строки и комментарии.
192.168.0.10:22
192.168.0.11:22
Запуск одной команды на нескольких серверах Linux
Вы можете выполнить любую команду на разных или нескольких хостах Linux в сети, запустив команду pssh. С pssh можно использовать множество опций, как описано ниже:
Мы рассмотрим несколько способов выполнения команд на нескольких хостах с использованием pssh с различными параметрами.
- Чтобы прочитать файл хоста, включите опцию
-h имя_файла_хоста
или--hosts имя_файла_хоста
. - Чтобы включить имя пользователя по умолчанию на всех хостах, которые не определяют конкретного пользователя, используйте опцию
-l
имя пользователя или--user имя пользователя
. - Вы также можете отображать стандартный вывод и стандартную ошибку по мере завершения каждого хоста. Используя параметр
-i
или--inline
. - Вы можете захотеть отключить соединение по истечении заданного количества секунд, включив параметр
-t число_секунд
. - Чтобы сохранить стандартный вывод в заданный каталог, вы можете использовать опцию
-o /directory/path
. - Чтобы запросить пароль и отправить его по SSH, используйте опцию
-A
.
Давайте посмотрим несколько примеров и использование команд pssh:
Запуск команд на нескольких хостах Linux
1. Чтобы выполнить echo «Hello TecMint» на терминале нескольких хостов Linux пользователем root и запросить пароль пользователя root, выполните приведенную ниже команду.
Важно! Помните, что все хосты должны быть включены в файл хоста.
pssh -h pssh-hosts -l root -A echo "Hello TecMint"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 15:54:55 [SUCCESS] 192.168.0.10:22
[2] 15:54:56 [SUCCESS] 192.168.0.11:22
Примечание. В приведенной выше команде «pssh-hosts» — это файл со списком IP-адресов удаленного сервера Linux и номера порта SSH. что вы хотите выполнять команды.
Найдите использование диска на нескольких хостах Linux
2. Чтобы узнать использование дискового пространства на нескольких серверах Linux в вашей сети, вы можете запустить одну команду следующим образом.
pssh -h pssh-hosts -l root -A -i "df -hT"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 16:04:18 [SUCCESS] 192.168.0.10:22
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 38G 4.3G 32G 12% /
tmpfs tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 ext4 190M 25M 156M 14% /boot
[2] 16:04:18 [SUCCESS] 192.168.0.11:22
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 30G 9.8G 20G 34% /
devtmpfs devtmpfs 488M 0 488M 0% /dev
tmpfs tmpfs 497M 148K 497M 1% /dev/shm
tmpfs tmpfs 497M 7.0M 490M 2% /run
tmpfs tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 166M 332M 34% /boot
Найдите время безотказной работы нескольких хостов Linux
3. Если вы хотите узнать время безотказной работы нескольких серверов Linux одновременно, вы можете запустить следующую команду.
pssh -h pssh-hosts -l root -A -i "uptime"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 16:09:03 [SUCCESS] 192.168.0.10:22
16:09:01 up 1:00, 2 users, load average: 0.07, 0.02, 0.00
[2] 16:09:03 [SUCCESS] 192.168.0.11:22
06:39:03 up 1:00, 2 users, load average: 0.00, 0.06, 0.09
Вы можете просмотреть страницу ввода вручную для команды pssh, чтобы получить множество других опций и узнать больше способов использования pssh.
pssh --help
Краткое содержание
Параллельный SSH или PSSH — хороший инструмент для выполнения команд в среде, где системному администратору приходится работать со многими серверами в сети. . Это облегчит удаленное выполнение команд на разных хостах в сети.
Надеюсь, что это руководство окажется для вас полезным, и в случае получения дополнительной информации о pssh или ошибках при его установке или использовании, оставляйте комментарии.