Com executar diverses ordres en diversos servidors Linux


Si esteu gestionant diversos servidors Linux i voleu executar diverses ordres a tots els servidors Linux, però no teniu ni idea de com fer-ho. No cal que us preocupeu, en aquesta senzilla guia de gestió de servidors us mostrarem com executar diverses ordres en diversos servidors Linux simultàniament.

Per aconseguir-ho, podeu utilitzar el programa pssh (ssh paral·lel), una utilitat de línia d'ordres per executar ssh en paral·lel en diversos hosts. Amb ell, podeu enviar entrada a tots els processos ssh, des d'un script de shell.

  1. Instal·leu Pssh per executar ordres en diversos servidors Linux remots
  2. Heu d'utilitzar l'autenticació SSH sense contrasenya per a tots els servidors remots.

Creeu un script de Shell

Per tant, heu de començar preparant un script que contingui les ordres de Linux que voleu executar als diferents servidors. En aquest exemple, escriurem un script que recopilarà la informació següent de diversos servidors:

  • Comprova el temps de funcionament dels servidors
  • Comproveu qui ha iniciat sessió i què està fent
  • Llista els 5 principals processos en execució segons l'ús de la memòria.

Primer creeu un script anomenat commands.sh amb el vostre editor preferit.

# vi commands.sh

A continuació, afegiu les ordres següents a l'script tal com es mostra.

#!/bin/bash 
###############################################################################
#Script Name    : commands.sh                       
#Description    : execute multiple commands on multiple servers                                                                     
#Author         : Aaron Kili Kisinga       
#Email          : [email  
################################################################################
echo
# show system uptime
uptime
echo
# show who is logged on and what they are doing
who
echo
# show top 5 processe by RAM usage 
ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head -n 6

exit 0

Deseu el fitxer i tanqueu-lo. A continuació, feu que l'script sigui executable tal com es mostra.

# chmod +x commands.sh

Creeu un fitxer d'amfitrions PSSH

A continuació, afegiu la llista de servidors on voleu executar les ordres, en un fitxer hosts.txt, en el format [[email ]host[:port] o simplement doneu la IP del servidor. adreces.

Però us suggerim que utilitzeu àlies ssh que es poden especificar al fitxer .ssh/config tal com s'explica a com configurar connexions ssh personalitzades per simplificar l'accés remot.

Aquest mètode és més eficient i fiable, permet especificar opcions de configuració (com ara nom d'amfitrió, fitxer d'identificació, port, nom d'usuari, etc.) per a cada servidor remot.

A continuació es mostra el nostre fitxer d'àlies d'amfitrions ssh, conegut com a fitxer de configuració ssh específic de l'usuari.

# vi ~/.ssh/config

A continuació, creeu un fitxer hosts.txt, aquí només podeu especificar els àlies (noms definits mitjançant la paraula clau Host al fitxer .ssh/config) tal com es mostra.

# vi hosts.txt 

Afegiu els àlies del servidor.

server1
server2
server3

Executeu ordres mitjançant un script en diversos servidors Linux

Ara executeu l'ordre pssh següent especificant el fitxer hosts.txt juntament amb l'script que conté diverses ordres per executar-se en diversos servidors remots.

# pssh -h hosts.txt -P -I<./commands.sh

Significat de les banderes utilitzades a l'ordre anterior:

  • -h: llegeix el fitxer hosts.
  • -P: diu a pssh que mostri la sortida a mesura que arriba.
  • -I: llegeix l'entrada i envia a cada procés ssh.

Això és! En aquest article, vam mostrar com executar diverses ordres en diversos servidors a Linux. Podeu compartir qualsevol reflexió relacionada amb aquest tema a través de la secció de comentaris a continuació.