PSSH / PSCP
Uso de pssh y pscp
En esta página se muestran ejemplos prácticos del uso de pssh y pscp para la ejecución de comandos y copia de ficheros de forma paralela en múltiples servidores Linux.
Todos los ejemplos asumen acceso por SSH y privilegios de root o sudo.
---
pssh – Ejecución remota en paralelo
pssh permite ejecutar comandos simultáneamente en múltiples servidores definidos en un fichero.
---
Copiar un fichero de configuración de forma masiva
Ejecuta un comando cp en todos los servidores del listado:
pssh -X -q -h servers.lst -i \
"sudo cp /etc/sudoers.serverA /etc/sudoers"
---
Buscar configuración en múltiples servidores
Buscar la opción X11 en la configuración SSH:
pssh -X -q -h servers.lst -i \
"sudo grep X11 /etc/ssh/sshd_config"
---
Ejecutar un script remoto
Ejecutar un script previamente copiado en /tmp:
pssh -X -q -h servers.lst \
-o out_umount -e err_umount -i \
"sudo /tmp/umount.sh"
---
Controlar salida estándar y errores
Guardar la salida estándar y errores en directorios separados:
pssh -X -q -h servers.lst \
-o info/ -e error/ -p 1 \
"sudo date"
---
Desactivar THP (Transparent Huge Pages)
Ejecutar un comando protegido con sh -c:
pssh -X -q -h servers.lst \
-O StrictHostKeyChecking=no -t 300 -p 1 \
"sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'"
---
Consultas sobre usuarios y permisos
Buscar una entrada concreta en /etc/sudoers:
pssh -X -q -h servers.lst -i \
"sudo grep -i redis /etc/sudoers"
Buscar un usuario por UID:
pssh -X -q -h servers.lst -i \
"getent passwd | grep 10188"
---
Ejecución autenticada y en serie
Ejecutar un comando uno a uno (-p 1) solicitando contraseña:
pssh -h servers.lst -p 1 -A -P \
"pip3 list | grep google-api-python-client"
---
pscp – Copia de ficheros en paralelo
pscp permite copiar archivos a múltiples servidores de forma simultánea.
---
Copiar un script a /tmp
pscp -h servers.lst -o out_copy -e err_copy umount.sh /tmp
---
Copiar scripts de mantenimiento
pscp -h servers.lst \
-o out_copy -e err_copy \
isilon_fstab_mod.sh /tmp
---
Copiar a distintos grupos de servidores
pscp -h servers_group2.lst \
-o out_copy -e err_copy \
umount.sh /tmp
---
Buenas prácticas
- Probar primero con un único servidor
- Usar
-p 1para evitar impactos masivos - Redirigir salidas con
-oy-e - Validar scripts antes de ejecutarlos en paralelo
- Usar inventarios claros y controlados
---
Notas finales
pssh y pscp son herramientas muy potentes para administración masiva. Un uso incorrecto puede provocar impactos en múltiples sistemas al mismo tiempo. Utilizarlas siempre con precaución.