Búsqueda de sitios web

PSSH: ejecutar comandos en varios sistemas Linux remotos


No hay duda de que OpenSSH es una de las herramientas más utilizadas y potentes disponibles para Linux, que le permite conectarse de forma segura a sistemas Linux remotos a través de un shell y le permite transferir archivos de forma segura hacia y desde sistemas remotos.

Pero la mayor desventaja de OpenSSH es que no se puede ejecutar el mismo comando en varios hosts a la vez y OpenSSH no está desarrollado para realizar tales tareas.

Aquí es donde la herramienta Parallel SSH o PSSH resulta útil, es una aplicación basada en Python que le permite ejecutar comandos en múltiples hosts en paralelo al mismo tiempo.

La herramienta PSSH incluye versiones paralelas de OpenSSH y herramientas relacionadas como:

  • pssh: es un programa para ejecutar ssh en paralelo en múltiples hosts remotos.
  • pscp: es un programa para copiar archivos en paralelo a varios hosts.
  • prsync: es un programa para copiar archivos de manera eficiente a múltiples hosts en paralelo.
  • pnuke: finaliza procesos en múltiples hosts remotos en paralelo.
  • pslurp: copia archivos de varios hosts remotos a un host central en paralelo.

Estas herramientas son buenas para los administradores de sistemas que trabajan con grandes colecciones de nodos en una red.

Instale PSSH o SSH paralelo en Linux

En esta guía, veremos los pasos para instalar la última versión del programa PSSH (es decir, la versión 2.3.1) en distribuciones basadas en RHEL como Fedora, CentOS Stream. , Rocky & AlmaLinux y distribuciones basadas en Debian como Ubuntu y Linux Mint usando el comando pip.

El comando pip es un pequeño programa (que reemplaza el script easy_install) para instalar y administrar el índice de paquetes de software Python.

Sobre distribuciones basadas en RHEL

En las distribuciones RHEL, primero debe instalar el paquete pip (es decir, python-pip) en su sistema para instalar PSSH. programa usando yum o dnf.

yum install python-pip
OR
dnf install python-pip

Una vez que haya instalado la herramienta pip, puede instalar el paquete pssh usando el comando pip, como se muestra a continuación.

pip install pssh  

Sobre distribuciones basadas en Debian

En distribuciones basadas en Debian, lleva un minuto instalar pssh usando el comando pip.

sudo apt install python-pip
sudo pip install pssh

¿Cómo uso pssh en Linux?

Al usar pssh, necesita crear un archivo de host con la cantidad de hosts junto con la dirección IP y el número de puerto que necesita para conectarse a sistemas remotos usando pssh.

Las líneas del archivo host tienen el siguiente formato y también pueden incluir líneas en blanco y comentarios.

192.168.0.10:22
192.168.0.11:22

Ejecute un comando único en varios servidores Linux

Puede ejecutar cualquier comando en diferentes o múltiples hosts Linux en una red ejecutando un comando pssh. Hay muchas opciones para usar con pssh como se describe a continuación:

Veremos algunas formas de ejecutar comandos en varios hosts usando pssh con diferentes opciones.

  • Para leer el archivo host, incluya la opción -h host_file-name o --hosts host_file_name.
  • Para incluir un nombre de usuario predeterminado en todos los hosts que no definen un usuario específico, utilice la opción -l nombre de usuario o --user nombre de usuario.
  • También puede mostrar la salida estándar y el error estándar a medida que se completa cada host. Utilizando la opción -i o --inline.
  • Es posible que desee hacer que las conexiones se agoten después del número de segundos indicado incluyendo la opción -t number_of_segundos.
  • Para guardar la salida estándar en un directorio determinado, puede utilizar la opción -o /directorio/ruta.
  • Para solicitar una contraseña y enviarla a SSH, utilice la opción -A.

Veamos algunos ejemplos y uso de los comandos pssh:

Ejecutar comandos en varios hosts Linux

1. Para ejecutar echo “Hello TecMint ” en el terminal de los múltiples hosts de Linux por parte del usuario root y solicitar la contraseña del usuario root, ejecute este comando a continuación.

Importante: Recuerde que todos los hosts deben estar incluidos en el archivo de 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

Nota: En el comando anterior, “pssh-hosts” es un archivo con la lista de la dirección IP del servidor Linux remoto y el número de puerto SSH. que desea ejecutar comandos.

Encuentre el uso de disco de múltiples hosts Linux

2. Para conocer el uso del espacio en disco en varios servidores Linux en su red, puede ejecutar un solo comando de la siguiente manera.

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

Encuentre el tiempo de actividad de múltiples hosts Linux

3. Si desea conocer el tiempo de actividad de varios servidores Linux de una sola vez, puede ejecutar el siguiente comando.

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

Puede ver la página de entrada manual del comando pssh para obtener muchas otras opciones y descubrir más formas de usar pssh.

pssh --help

Resumen

Parallel SSH o PSSH es una buena herramienta para ejecutar comandos en un entorno donde un administrador del sistema tiene que trabajar con muchos servidores en una red. . Facilitará la ejecución remota de comandos en diferentes hosts de una red.

Espero que esta guía le resulte útil y, en caso de obtener información adicional sobre pssh o errores durante la instalación o el uso, no dude en publicar un comentario.