Diferencia entre revisiones de «PSSH / PSCP»
(Página creada con «== 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 <code>root</code> o <code>sudo</code>. --- == pssh – Ejecución remota en paralelo == '''pssh''' permite ejecutar comandos simultáneamente en múltiples servidores definidos en un fichero. --- ==…») |
|||
| (No se muestran 6 ediciones intermedias del mismo usuario) | |||
| Línea 3: | Línea 3: | ||
En esta página se muestran ejemplos prácticos del uso de '''pssh''' y '''pscp''' para la ejecución | 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. | de comandos y copia de ficheros de forma paralela en múltiples servidores Linux. | ||
=== Buenas prácticas === | |||
* Probar primero con un único servidor | |||
* Usar <code>-p 1</code> para evitar impactos masivos | |||
* Redirigir salidas con <code>-o</code> y <code>-e</code> | |||
* 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. | |||
Todos los ejemplos asumen acceso por SSH y privilegios de <code>root</code> o <code>sudo</code>. | Todos los ejemplos asumen acceso por SSH y privilegios de <code>root</code> o <code>sudo</code>. | ||
== pssh – Ejecución remota en paralelo == | == pssh – Ejecución remota en paralelo == | ||
'''pssh''' permite ejecutar comandos simultáneamente en múltiples servidores definidos en un fichero. | '''pssh''' permite ejecutar comandos simultáneamente en múltiples servidores definidos en un fichero. | ||
=== Copiar un fichero de configuración de forma masiva === | === Copiar un fichero de configuración de forma masiva === | ||
| Línea 19: | Línea 29: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pssh -X -q -h servers.lst -i | pssh -X -q -h servers.lst -i "sudo cp /etc/sudoers.serverA /etc/sudoers" | ||
"sudo cp /etc/sudoers.serverA /etc/sudoers" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Buscar configuración en múltiples servidores === | === Buscar configuración en múltiples servidores === | ||
| Línea 30: | Línea 37: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pssh -X -q -h servers.lst -i | pssh -X -q -h servers.lst -i "sudo grep X11 /etc/ssh/sshd_config" | ||
"sudo grep X11 /etc/ssh/sshd_config" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Ejecutar un script remoto === | === Ejecutar un script remoto === | ||
| Línea 41: | Línea 46: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pssh -X -q -h servers.lst | pssh -X -q -h servers.lst -o out_umount -e err_umount -i "sudo /tmp/umount.sh" | ||
-o out_umount -e err_umount -i | |||
"sudo /tmp/umount.sh" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Controlar salida estándar y errores === | === Controlar salida estándar y errores === | ||
| Línea 53: | Línea 54: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pssh -X -q -h servers.lst | pssh -X -q -h servers.lst -o info/ -e error/ -p 1 "sudo date" | ||
-o info/ -e error/ -p 1 | |||
"sudo date" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Desactivar THP (Transparent Huge Pages) === | === Desactivar THP (Transparent Huge Pages) === | ||
| Línea 65: | Línea 62: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pssh -X -q -h servers.lst | pssh -X -q -h servers.lst -O StrictHostKeyChecking=no -t 300 -p 1 "sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'" | ||
-O StrictHostKeyChecking=no -t 300 -p 1 | |||
"sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Consultas sobre usuarios y permisos === | === Consultas sobre usuarios y permisos === | ||
| Línea 77: | Línea 70: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pssh -X -q -h servers.lst -i | pssh -X -q -h servers.lst -i "sudo grep -i redis /etc/sudoers" | ||
"sudo grep -i redis /etc/sudoers" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Línea 84: | Línea 76: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pssh -X -q -h servers.lst -i | pssh -X -q -h servers.lst -i "getent passwd | grep 10188" | ||
"getent passwd | grep 10188" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Ejecución autenticada y en serie === | === Ejecución autenticada y en serie === | ||
| Línea 95: | Línea 84: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pssh -h servers.lst -p 1 -A -P | pssh -h servers.lst -p 1 -A -P "pip3 list | grep google-api-python-client" | ||
"pip3 list | grep google-api-python-client" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== pscp – Copia de ficheros en paralelo == | == pscp – Copia de ficheros en paralelo == | ||
'''pscp''' permite copiar archivos a múltiples servidores de forma simultánea. | '''pscp''' permite copiar archivos a múltiples servidores de forma simultánea. | ||
=== Copiar un script a /tmp === | === Copiar un script a /tmp === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pscp -h servers.lst | pscp -h servers.lst -o out_copy -e err_copy umount.sh /tmp | ||
-o out_copy -e err_copy | |||
umount.sh /tmp | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Copiar scripts de mantenimiento === | === Copiar scripts de mantenimiento === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pscp -h servers.lst | pscp -h servers.lst -o out_copy -e err_copy isilon_fstab_mod.sh /tmp | ||
-o out_copy -e err_copy | |||
isilon_fstab_mod.sh /tmp | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Copiar a distintos grupos de servidores === | === Copiar a distintos grupos de servidores === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
pscp -h servers_group2.lst | pscp -h servers_group2.lst -o out_copy -e err_copy umount.sh /tmp | ||
-o out_copy -e err_copy | |||
umount.sh /tmp | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revisión actual - 16:15 2 ene 2026
Uso de pssh y pscp[editar]
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.
Buenas prácticas[editar]
- 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[editar]
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.
Todos los ejemplos asumen acceso por SSH y privilegios de root o sudo.
pssh – Ejecución remota en paralelo[editar]
pssh permite ejecutar comandos simultáneamente en múltiples servidores definidos en un fichero.
Copiar un fichero de configuración de forma masiva[editar]
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[editar]
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[editar]
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[editar]
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)[editar]
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[editar]
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[editar]
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[editar]
pscp permite copiar archivos a múltiples servidores de forma simultánea.
Copiar un script a /tmp[editar]
pscp -h servers.lst -o out_copy -e err_copy umount.sh /tmp
Copiar scripts de mantenimiento[editar]
pscp -h servers.lst -o out_copy -e err_copy isilon_fstab_mod.sh /tmp
Copiar a distintos grupos de servidores[editar]
pscp -h servers_group2.lst -o out_copy -e err_copy umount.sh /tmp