Поиск по сайту:

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 или ошибках при его установке или использовании, оставляйте комментарии.