Sådan køres flere kommandoer på flere Linux-servere


Hvis du administrerer flere Linux-servere, og du vil køre flere kommandoer på alle Linux-serverne, men du har ingen idé om, hvordan du gør det. Der er ingen grund til at bekymre sig, i denne enkle guide til serveradministration viser vi dig, hvordan du kører flere kommandoer på flere Linux-servere samtidigt.

For at opnå dette kan du bruge programmet pssh (parallel ssh), et kommandolinjeprogram til at udføre ssh parallelt på et antal værter. Med det kan du sende input til alle ssh-processerne fra et shell-script.

  1. Installer Pssh for at køre kommandoer på flere eksterne Linux-servere
  2. Du skal bruge SSH-adgangskodeløs godkendelse til alle eksterne servere.

Opret et Shell Script

Derfor skal du starte med at forberede et script, der indeholder de Linux-kommandoer, du vil udføre på de forskellige servere. I dette eksempel skriver vi et script, der samler følgende oplysninger fra flere servere:

  • Kontroller serverens oppetid
  • Kontroller, hvem der er logget på, og hvad de laver
  • Liste over de 5 kørende processer i henhold til hukommelsesforbrug.

Opret først et script kaldet commands.sh med din yndlingseditor.

# vi commands.sh

Dernæst tilføj følgende kommandoer til scriptet som vist.

#!/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

Gem filen, og luk den. Gør derefter scriptet eksekverbart som vist.

# chmod +x commands.sh

Opret PSSH-værtsfil

Dernæst tilføj listen over servere, som du vil køre kommandoerne på, i en hosts.txt-fil i formatet [[email ] host [: port] eller simpelthen giv serveren IP adresser.

Men vi foreslår, at du bruger ssh-aliasser, der kan specificeres i .ssh/config-fil som forklaret i, hvordan du konfigurerer brugerdefinerede ssh-forbindelser for at forenkle fjernadgang.

Denne metode er mere effektiv og pålidelig, den giver dig mulighed for at specificere konfigurationsindstillinger (såsom værtsnavn, identificer fil, port, brugernavn osv.) For hver fjernserver.

Følgende er vores eksempel på ssh-værtsaliaser a.k.a brugerspecifik ssh-konfigurationsfil.

# vi ~/.ssh/config

Opret derefter en hosts.txt-fil, her kan du blot angive aliaserne (navne defineret ved hjælp af Host-nøgleord i .ssh/config-fil) som vist.

# vi hosts.txt 

Tilføj serveraliaser.

server1
server2
server3

Kør kommandoer via et script på flere Linux-servere

Kør nu følgende pssh-kommando ved at angive hosts.txt-fil sammen med scriptet, der indeholder flere kommandoer, der skal køres på flere eksterne servere.

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

Betydningen af de flag, der bruges i ovenstående kommando:

  • -h - læser værtsfilen.
  • -P - beder pssh om at vise output, når det ankommer.
  • -I - læser input og sender til hver ssh-proces.

Det er det! I denne artikel viste vi, hvordan man udfører flere kommandoer på flere servere i Linux. Du kan dele eventuelle tanker vedrørende dette emne via kommentarfeltet nedenfor.