|
|
| (No se muestran 2 ediciones intermedias del mismo usuario) |
| Línea 238: |
Línea 238: |
|
| |
|
|
| |
|
|
| |
|
| |
| == 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.
| |
|
| |
| ---
| |
|
| |
| === Copiar un fichero de configuración de forma masiva ===
| |
|
| |
| Ejecuta un comando <code>cp</code> en todos los servidores del listado:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pssh -X -q -h servers.lst -i \
| |
| "sudo cp /etc/sudoers.serverA /etc/sudoers"
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| === Buscar configuración en múltiples servidores ===
| |
|
| |
| Buscar la opción <code>X11</code> en la configuración SSH:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pssh -X -q -h servers.lst -i \
| |
| "sudo grep X11 /etc/ssh/sshd_config"
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| === Ejecutar un script remoto ===
| |
|
| |
| Ejecutar un script previamente copiado en <code>/tmp</code>:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pssh -X -q -h servers.lst \
| |
| -o out_umount -e err_umount -i \
| |
| "sudo /tmp/umount.sh"
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| === Controlar salida estándar y errores ===
| |
|
| |
| Guardar la salida estándar y errores en directorios separados:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pssh -X -q -h servers.lst \
| |
| -o info/ -e error/ -p 1 \
| |
| "sudo date"
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| === Desactivar THP (Transparent Huge Pages) ===
| |
|
| |
| Ejecutar un comando protegido con <code>sh -c</code>:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pssh -X -q -h servers.lst \
| |
| -O StrictHostKeyChecking=no -t 300 -p 1 \
| |
| "sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'"
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| === Consultas sobre usuarios y permisos ===
| |
|
| |
| Buscar una entrada concreta en <code>/etc/sudoers</code>:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pssh -X -q -h servers.lst -i \
| |
| "sudo grep -i redis /etc/sudoers"
| |
| </syntaxhighlight>
| |
|
| |
| Buscar un usuario por UID:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pssh -X -q -h servers.lst -i \
| |
| "getent passwd | grep 10188"
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| === Ejecución autenticada y en serie ===
| |
|
| |
| Ejecutar un comando uno a uno (<code>-p 1</code>) solicitando contraseña:
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pssh -h servers.lst -p 1 -A -P \
| |
| "pip3 list | grep google-api-python-client"
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| == pscp – Copia de ficheros en paralelo ==
| |
|
| |
| '''pscp''' permite copiar archivos a múltiples servidores de forma simultánea.
| |
|
| |
| ---
| |
|
| |
| === Copiar un script a /tmp ===
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pscp -h servers.lst \
| |
| -o out_copy -e err_copy \
| |
| umount.sh /tmp
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| === Copiar scripts de mantenimiento ===
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pscp -h servers.lst \
| |
| -o out_copy -e err_copy \
| |
| isilon_fstab_mod.sh /tmp
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| === Copiar a distintos grupos de servidores ===
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| pscp -h servers_group2.lst \
| |
| -o out_copy -e err_copy \
| |
| umount.sh /tmp
| |
| </syntaxhighlight>
| |
|
| |
| ---
| |
|
| |
| == 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.
| |
|
| |
|
| == Checksum == | | == Checksum == |
Introducción
Esta página recopila comandos y procedimientos habituales de administración de sistemas Unix/Linux,
utilizados en tareas de diagnóstico, mantenimiento, automatización y resolución de incidencias.
Está orientada a entornos Linux empresariales y laboratorios técnicos.
Recursos web
Copias de seguridad rápidas
Copia de seguridad de /etc/fstab con marca temporal:
cp -a /etc/fstab /etc/fstab.$(date '+%Y-%m-%d_%H-%M-%S')
Ayudas con vi
Añadir # al inicio de todas las líneas:
Eliminar # del inicio de las líneas:
Sustituir texto:
:%s/texto_original/texto_nuevo/g
Análisis de sistemas de ficheros llenos
Directorios que más ocupan espacio:
du -kx | sort -nr | head -10
Buscar ficheros grandes:
find . -type f -size +500M -exec ls -lh {} \;
Buscar comprimidos:
find . -type f \( -name "*.gz" -o -name "*.tar" -o -name "*.zip" \) -ls
Compresión de ficheros
Comprimir múltiples ficheros:
ls | grep -v '\.gz$' | head -600 | xargs -n 1 gzip -9
Ver contenido de un fichero comprimido:
Descomprimir:
Búsqueda de ficheros core
Localizar cores:
find / -type f -name core -ls
Analizar core:
Procesos y recursos
Procesos en estado defunct:
ps aux | awk '$8 ~ /D/ {print}'
Procesos que usan swap:
for f in /proc/*/status; do
awk '/Name|VmSwap/{printf "%s %s\n",$2,$3}' $f
done | sort -k2 -nr
Uso de CPU y memoria
Uso global de CPU:
grep 'cpu ' /proc/stat | awk '{print ($2+$4)*100/($2+$4+$5)"%"}'
Procesos ordenados por memoria:
ps -eo pid,user,%mem,command --sort=-%mem | head
Red y conectividad
Ver IPs del sistema:
Probar conectividad TCP (puerto 22):
NFS
Exportaciones:
Montaje NFS:
mount -t nfs4 serverA:/data /mnt/data
Ver montajes:
Variables de entorno
Variable temporal:
export MYVAR="valor"
unset MYVAR
Variables persistentes:
~/.bash_profile
~/.profile
LSOF
Ficheros borrados aún en uso:
Inodos
Directorios con más inodos:
find /var/log -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head
---
Remontar sistemas de ficheros
Enlaces simbólicos
Operaciones masivas con pssh
Ejecutar comandos remotos:
pssh -h servidores.lst -i "uname -a"
Copiar ficheros:
pscp -h servidores.lst fichero /tmp
Checksum
Comparar ficheros:
md5sum /etc/hosts /tmp/hosts
Notas finales
Esta hoja actúa como referencia rápida para administración de sistemas Linux en entornos reales.
Se recomienda validar los comandos en entornos de prueba antes de su uso en producción.