Cómo ejecutar varios comandos en varios servidores Linux

Cómo ejecutar varios comandos en varios servidores Linux

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

Para lograrlo, puede usar el programa pssh (ssh paralelo), una utilidad de línea de comandos para ejecutar ssh en paralelo en varios hosts. Con él, puede enviar entradas a todos los procesos ssh, desde un script de shell.

Requisitos

  1. Instale Pssh para ejecutar comandos en varios servidores Linux remotos
  2. Debe estar utilizando autenticación sin contraseña SSH para todos los servidores remotos.

Crear un script de shell

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

  • Verifique el tiempo de actividad de los servidores
  • Verifique quién está conectado y qué están haciendo
  • Enumere los 5 procesos principales en ejecución según el uso de memoria.

Primero cree un script llamado commands.sh. con su editor favorito.

# vi commands.sh

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

#!/bin/bash ############################################################################################################################################################################################################################################################## ############################################################################################################################################################################################################################################################################################ ################################################################################################################################################################################################################################################################################################## # ############################################################################################################################################################################################################################################################################################ ################### echo # mostrar el tiempo de actividad del sistema echo # mostrar quién está conectado y qué están haciendo quién echo # muestra los 5 procesos principales por uso de RAM ps-eo cmd, pid, ppid,% mem,% cpu–sort =-% mem | head-n 6 exit 0 freestar.config.enabled_slots.push

Guarde el archivo y ciérrelo. Luego haga que el script sea ejecutable como se muestra.

# chmod + x commands.sh

Create PSSH Hosts File

Luego, agregue la lista de servidores en los que desea ejecutar los comandos, en un archivo hosts.txt. en el formato [[email protected]] host [: port] o simplemente proporcione las direcciones IP del servidor.

Pero le sugerimos que utilice alias ssh que se puede especificar en el archivo .ssh/config. como se explica en cómo configurar 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 nombre de host, archivo de identificación, puerto, nombre de usuario, etc.) para cada servidor remoto.

A continuación se muestra nuestro archivo de alias de hosts ssh de muestra, también conocido como archivo de configuración ssh específico del usuario. vi ~/.ssh/config  Archivo de alias de hosts SSH  Archivo de alias de hosts SSH Archivo de alias de hosts SSH

A continuación, cree un archivo hosts.txt. aquí puede simplemente especificar los alias (nombres definidos mediante la palabra clave Host en archivo .ssh/config. como se muestra.

# vi hosts.txt

Agregue los alias del servidor.

server1 server2 server3

Ejecute comandos a través de un script en varios servidores Linux

Ahora ejecute el siguiente pssh. al especificar el archivo hosts.txt. junto con el script que contiene varios comandos para ejecutar en varios 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.
  • -P: le dice a pssh que muestre la salida a medida que llega.
  • -I: lee la entrada y envía a cada proceso ssh.

 Ejecutar varios comandos en servidores remotos  Ejecutar varios comandos en servidores remotos Ejecutar múltiples comandos en servidores remotos

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