Несомненно, OpenSSH – один из самых распространенных и мощных инструментов для Linux, который позволяет безопасно подключаться к удаленным Linux-системам и безопасно передавать файлы на удаленные системы в обе стороны.
Но самый большой недостаток OpenSSH в том, что вы не можете выполнить одну и ту же команду на нескольких хостах одновременно.
Вот тут-то и пригодится инструмент Parallel SSH или PSSH – это приложение на базе Python которое позволяет выполнять команды на нескольких хостах параллельно в одно и то же время.
PSSH запускает параллельные версии OpenSSH и связанные с ним инструменты, такие как:
- pssh – программа для параллельного запуска ssh на нескольких удаленных хостах.
- pscp – программа для параллельного копирования файлов на несколько хостов.
- prsync – программа для эффективного параллельного копирования файлов на несколько хостов.
- pnuke – параллельно убивает процессы на нескольких удаленных узлах.
- pslurp – параллельно копирует файлы с нескольких удаленных узлов на центральный.
Эти инструменты пригодятся системным администраторам, которые работают с большими коллекциями узлов в сети.
Установка PSSH в Linux
Здесь мы рассмотрим установку PSSH на дистрибутивы на базе RHEL, такие как Fedora, CentOS, Rocky и AlmaLinux а также на дистрибутивы на базе Debian такие как Ubuntu и Linux Mint с помощью команды pip
.
Команда pip – это небольшая программа (замена скрипта easy_install) для установки и управления пакетами программ на языке Python index.
В дистрибутивах на базе RHEL
В дистрибутивах RHEL для установки PSSH с помощью yum или dnf необходимо сначала установить пакет pip (т.е. python-pip).
yum install python-pip OR dnf install python-pip
После установки инструмента pip вы можете установить пакет pssh.
pip install pssh
На Debian
В дистрибутивах на базе Debian установка pssh с помощью команды pip займёт минуту.
sudo apt install python-pip sudo pip install pssh
Как использовать pssh в Linux?
При использовании pssh вам необходимо создать файл host с количеством хостов, IP-адресом и номером порта, которые нужны для подключения к удалённым системам с помощью pssh.
Строки в файле host имеют следующий вид и могут также включать пустые строки и комментарии.
192.168.0.10:22 192.168.0.11:22
Выполнение одной команды на нескольких Linux-серверах
Вы можете выполнить любую команду на разных или нескольких Linux-хостах в сети, выполнив команду pssh. Существует множество вариантов использования команды pssh, которые описаны ниже:
Мы рассмотрим несколько способов выполнения команд на нескольких хостах с помощью команды pssh с различными опциями.
- Чтобы прочитать файл хоста, включите опцию
-h host_file-name
или--hosts host_file_name
. - Чтобы включить имя пользователя по умолчанию для всех хостов, которые не определяют конкретного пользователя, используйте опцию
-l username
или--user username
. - Вы также можете отображать стандартный вывод и стандартную ошибку по мере завершения работы каждого хоста. Используя опцию
-i
или--inline
. - Вы можете сделать так, чтобы соединения завершались через заданное количество секунд, включив опцию
-t number_of_seconds
. - Чтобы сохранить стандартный вывод в заданный каталог, вы можете использовать опцию
-o /directory/path
. - Чтобы запросить пароль и отправить его в SSH, используйте опцию
-A
.
Давайте рассмотрим несколько примеров и использование команд pssh:
Выполнение команд на нескольких Linux-хостах
Чтобы выполнить команду echo "Hello TecMint"
на терминале нескольких Linux-хостов от имени пользователя root и запросить пароль пользователя root.
Важно: Помните, что все хосты должны быть включены в файл host.
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-адресов и номеров портов SSH удаленного Linux-сервера, на котором вы хотите выполнять команды.
Узнать используемое место на дисках
Чтобы узнать использование дискового пространства на нескольких 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
Узнать uptime серверов
Если вы хотите узнать время работы нескольких Linux-серверов, выполните следующую команду.
pssh -h pssh-hosts -l root -A -i "uptime"<pre> <pre>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
Залючение
Parallel SSH или PSSH – это хороший инструмент для выполнения команд в среде, где системному администратору приходится работать с множеством серверов в сети. Он облегчает удаленное выполнение команд на разных хостах сети.
Комментарии (0)