LinuxParty
Sin duda, OpenSSH es una de las herramientas más utilizadas y potentes disponibles para Linux, que le permite conectarse de forma segura a sistemas remotos de Linux a través de un shell y le permite transferir archivos de forma segura hacia y desde sistemas remotos.
Pssh: ejecutar comandos en múltiples servidores Linux
Pero las mayores desventajas de OpenSSH es que no se puede ejecutar el mismo comando en varios hosts de una vez y OpenSSH no está desarrollado para realizar tales tareas. Aquí es donde la herramienta Parallel SSH o PSSH es ú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 tales como:
- pssh : es un programa para ejecutar ssh en paralelo en varios hosts remotos.
- pscp : es un programa para copiar archivos en paralelo a varios hosts.
- Pscp: copiar / transferir archivos de dos o más servidores remotos de Linux
- prsync : es un programa para copiar de manera eficiente archivos a varios hosts en paralelo.
- pnuke : elimina procesos en múltiples hosts remotos en paralelo.
- pslurp : copia archivos de múltiples hosts remotos a un host central en paralelo.
Estas herramientas son buenas para los administradores del sistema que se encuentran trabajando con grandes colecciones de nodos en una red.
Instalar 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 Fedora como CentOS / RedHat y derivados de Debian como Ubuntu / Mint usando el comando pip.
El comando pip es un programa pequeño (reemplazo del script easy_install ) para instalar y administrar el índice de paquetes de software de Python.
En Distribuciones basadas en Fedora
En distribuciones CentOS / RHEL , primero debe instalar el paquete pip (es decir, python-pip) en su sistema para instalar el programa PSSH.
# yum install python-pip
En Fedora 21+ , necesita ejecutar el comando dnf en lugar de yum ( dnf reemplazado yum ).
# dnf install python-pip
Una vez que haya instalado la herramienta pip, puede instalar el paquete pssh con la ayuda del comando pip como se muestra.
# pip install pssh
Muestra de salida
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: AdvertcurePlatformWarning: un verdadero objeto SSLContext no está disponible. Esto evita que urllib3 configure SSL correctamente y puede hacer que fallen ciertas conexiones SSL. Para obtener más información, consulte https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InseguroPlataformaAdvertencia Está utilizando la versión 7.1.0 de pip, sin embargo, la versión 7.1.2 está disponible. Debería considerar la actualización a través del comando 'pip install --upgrade pip'. Recolectando pssh /usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: AdvertcurePlatformWarning: un verdadero objeto SSLContext no está disponible. Esto evita que urllib3 configure SSL correctamente y puede hacer que fallen ciertas conexiones SSL. Para obtener más información, consulte https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InseguroPlataformaAdvertencia Descargando pssh-2.3.1.tar.gz Instalación de paquetes recolectados: pssh Ejecutando setup.py install para pssh Instalado con éxito pssh-2.3.1
En derivados de Debian
En las distribuciones basadas en Debian lleva un minuto instalar pssh usando el comando pip.
$ sudo apt-get install python-pip $ sudo pip install pssh
Muestra de salida
Descargando / desempacando pssh Descargando pssh-2.3.1.tar.gz Ejecutando setup.py (ruta: /tmp/pip_build_root/pssh/setup.py) egg_info para el paquete pssh Instalación de paquetes recolectados: pssh Ejecutando setup.py install para pssh cambio del modo de compilación /scripts-2.7/pssh de 644 a 755 cambiando el modo de compilación /scripts-2.7/pnuke de 644 a 755 cambiando el modo de compilación /scripts-2.7/prsync de 644 a 755 cambiar el modo de compilación /scripts-2.7/pslurp de 644 a 755 cambio de modo de compilación /scripts-2.7/pscp de 644 a 755 cambio de modo de build /scripts-2.7/pssh-askpass de 644 a 755 cambio de modo de /usr/local/bin/pscp a 755 cambio de modo de /usr/local/bin/pssh-askpass a 755 cambio de modo de /usr/local/bin/pssh a 755 cambio de modo de /usr/local/bin/prsync a 755 cambiando el modo de /usr/local/bin/pnuke a 755 cambio de modo de /usr/local/bin/pslurp a 755 Instalado con éxito pssh Limpiar...
Como puede ver en el resultado anterior, la última versión de pssh ya está instalada en el sistema. ¿Cómo uso pssh?
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 en el archivo de host están en la siguiente forma y también pueden incluir líneas en blanco y comentarios. archivo hosts pssh
192.168.0.10:22 192.168.0.11:22
Ejecutando un solo comando en múltiples servidores usando pssh
Puede ejecutar cualquier comando individual 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 de hosts, incluya la opción -h nombre_archivo_host o la opción -hosts nombre_archivo_host.
- Para incluir un nombre de usuario predeterminado en todos los hosts que no definen un usuario específico, use 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 finaliza cada host. Al usar la opción -i o -inline.
- Es posible que desee desconectar las conexiones después de la cantidad de segundos dada incluyendo la opción -t number_of_seconds.
- Para guardar la salida estándar en un directorio determinado, puede usar la opción -o / directory / path.
- Para solicitar una contraseña y enviarla a ssh, use la opción -A.
Veamos algunos ejemplos y uso de los comandos pssh:
1. Para ejecutar echo "Hello LinuxParty" en el terminal de los múltiples hosts Linux por 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 LinuxParty" Advertencia: no ingrese su contraseña si alguien más tiene superusuario privilegios o acceso a su cuenta. Contraseña: [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 una lista de los servidores Linux remotos con la dirección IP y el número de puerto SSH con los que desea ejecutar los comandos.
2. Para conocer el uso del espacio de disco en múltiples servidores Linux en su red, puede ejecutar un solo comando de la siguiente manera.
# pssh -h pssh-hosts -l root -A -i "df -hT" Advertencia: no ingrese su contraseña si alguien más tiene superusuario privilegios o acceso a su cuenta. Contraseña: [1] 16:04:18 [ÉXITO] 192.168.0.10:22 Tamaño del tipo de sistema de archivos utilizado Disponibilidad Usar% montado en / dev / sda3 ext4 38G 4.3G 32G 12% / tmpfs tmpfs 499M 0 499M 0% / dev / shm / dev / sda1 ext4 190M 25M 156M 14% / arranque [2] 16:04:18 [ÉXITO] 192.168.0.11:22 Tamaño del tipo de sistema de archivos utilizado Disponibilidad Usar% montado en / 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% / ejecución tmpfs tmpfs 497M 0 497M 0% / sys / fs / cgroup / dev / sda1 xfs 497M 166M 332M 34% / arranque
3. Si desea conocer el tiempo de actividad de múltiples servidores Linux de una sola vez, puede ejecutar el siguiente comando.
# pssh -h pssh-hosts -l root -A -i "tiempo de actividad" Advertencia: no ingrese su contraseña si alguien más tiene superusuario privilegios o acceso a su cuenta. Contraseña: [1] 16:09:03 [SUCCESS] 192.168.0.10:22 16:09:01 hasta 1:00, 2 usuarios, promedio de carga: 0.07, 0.02, 0.00 [2] 16:09:03 [SUCCESS] 192.168.0.11:22 06:39:03 hasta 1:00, 2 usuarios, promedio de carga: 0.00, 0.06, 0.09
Puede ver la página de entrada manual del comando pssh para obtener muchas otras opciones para descubrir más formas de usar pssh.
# pssh --help [javier@localhost ~]$ pssh --help Usage: pssh [OPTIONS] command [...] Options: --version show program's version number and exit --help show this help message and exit -h HOST_FILE, --hosts=HOST_FILE hosts file (each line "[user@]host[:port]") -H HOST_STRING, --host=HOST_STRING additional host entries ("[user@]host[:port]") -l USER, --user=USER username (OPTIONAL) -p PAR, --par=PAR max number of parallel threads (OPTIONAL) -o OUTDIR, --outdir=OUTDIR output directory for stdout files (OPTIONAL) -e ERRDIR, --errdir=ERRDIR output directory for stderr files (OPTIONAL) -t TIMEOUT, --timeout=TIMEOUT timeout (secs) (0 = no timeout) per host (OPTIONAL) -O OPTION, --option=OPTION SSH option (OPTIONAL) -v, --verbose turn on warning and diagnostic messages (OPTIONAL) -A, --askpass Ask for a password (OPTIONAL) -x ARGS, --extra-args=ARGS Extra command-line arguments, with processing for spaces, quotes, and backslashes -X ARG, --extra-arg=ARG Extra command-line argument -i, --inline inline aggregated output and error for each server --inline-stdout inline standard output for each server -I, --send-input read from standard input and send as input to ssh -P, --print print output as we get it Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime [javier@localhost ~]$
Resumen
Parallel SSH o PSSH es una buena herramienta para usar para ejecutar comandos en un entorno donde un administrador del sistema tiene que trabajar con muchos servidores en una red. Facilitará que los comandos se ejecuten de forma remota en diferentes hosts en una red.
Espero que esta guía le resulte útil y en caso de cualquier información adicional sobre pssh o errores durante la instalación o el uso, no dude en publicar un comentario.
-
Linux
- Predicciones de Linux para 2025
- Elementary OS 8: una distribución de Linux para usuarios de Windows y macOS
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- Montar un directorio remoto, vía NFS, en Linux
- Mis predicciones sobre Linux para 2025: será un buen año
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad
- RebornOS es una versión hermosa y fácil de usar de Arch Linux con abundantes opciones de escritorio