Cómo ejecutar múltiples comandos en múltiples servidores de Linux

Cómo ejecutar múltiples comandos en múltiples servidores de Linux

Si está administrando múltiples servidores de Linux y desea ejecutar múltiples comandos en todos los servidores de Linux, pero no tiene idea de cómo hacerlo. No hay necesidad de preocuparse, en esta guía de administración de servidor simple, le mostraremos cómo ejecutar múltiples comandos en múltiples servidores de Linux simultáneamente.

Para lograr, puede usar el programa PSSH (paralelo SSH), una utilidad de línea de comandos para ejecutar SSH en paralelo en varios hosts. Con él, puede enviar información a todos los procesos SSH, desde un script de shell.

Requisitos

  1. Instale PSSH para ejecutar comandos en múltiples servidores remotos de Linux
  2. Debe usar la autenticación sin contraseña SSH para todos los servidores remotos.

Crear un script de shell

Por lo tanto, debe comenzar preparando un script que contenga los comandos de Linux que desea ejecutar en los diferentes servidores. En este ejemplo, escribiremos un script que recopile la siguiente información de varios servidores:

  • Tiempo de actividad de verificación de los servidores
  • Verifique quién está iniciado y qué están haciendo
  • Lista de los 5 mejores procesos de ejecución de acuerdo con el uso de la memoria.

Primero crea un script llamado comandos.mierda Con tu editor favorito.

# comandos VI.mierda 

A continuación, agregue los siguientes comandos al script como se muestra.

#!/bin/Bash ########################################## ############################## Nombre #Script: Comandos.sh #description: ejecute múltiples comandos en múltiples servidores #Author: Aaron Kili Kiseda #Mail: [Correo electrónico protegido] ####################### ############################################## ### Echo # show System Time de actividad Echo Echo # show quién está iniciado y qué están haciendo quién # # show top 5 procesos por uso de ram ps -eO cmd, pid, ppid,%mem,%cpu --sort = - - - - %Mem | Cabeza -n 6 Salida 0 

Guarde el archivo y cierre. Luego haga que el script sea ejecutable como se muestra.

# comandos chmod +x.mierda 

Crear archivo de hosts PSSH

A continuación, agregue la lista de servidores en los que desea ejecutar los comandos, en un Hospedadores.TXT archivo, en el formato [[correo electrónico protegido]] host [: puerto] o simplemente dar las direcciones IP del servidor.

Pero le sugerimos que use alias SSH que se pueden especificar en .ssh/config Archivo como se explica en cómo configurar las conexiones SSH personalizadas para simplificar el acceso remoto.

Este método es más eficiente y confiable, le permite especificar opciones de configuración (como el nombre del host, identificar el archivo, el puerto, el nombre de usuario, etc.) para cada servidor remoto.

El siguiente es nuestra muestra de SSH Hosts Aliases File A.k.un archivo de configuración SSH específico del usuario.

# VI ~/.ssh/config 
SSH Hosts Aliases File

A continuación, crea un Hospedadores.TXT Archivo, aquí simplemente puede especificar los alias (nombres definidos usando la palabra clave del host en .archivo ssh/config) como se muestra.

# VI Hosts.TXT 

Agregue los alias del servidor.

Server1 Server2 Server3 

Ejecutar comandos a través de un script en múltiples servidores de Linux

Ahora ejecuta lo siguiente PSSH comando especificando Hospedadores.TXT Archivo junto con el script que contiene múltiples comandos para ejecutarse en múltiples servidores remotos.

# PSSH -H Hosts.txt -p -i<./commands.sh 

Significado de las banderas utilizadas en el comando anterior:

  • -H - Lee el archivo de hosts.
  • -PAG - le dice a PSSH que muestre la salida a medida que llega.
  • -I - Lee Entradas y envía a cada proceso SSH.
Ejecutar múltiples comandos en servidores remotos

Eso es todo! En este artículo, mostramos cómo ejecutar múltiples comandos en múltiples servidores en Linux. Puede compartir cualquier pensamiento relacionado con este tema a través de la sección de comentarios a continuación.