Hvordan kjøre flere kommandoer på flere Linux-servere


Hvis du administrerer flere Linux-servere, og du vil kjøre flere kommandoer på alle Linux-serverne, men du har ingen anelse om hvordan du gjør det. Det er ingen grunn til bekymring, i denne enkle serveradministrasjonsguiden vil vi vise deg hvordan du kjører flere kommandoer på flere Linux-servere samtidig.

For å oppnå dette kan du bruke programmet pssh (parallell ssh), et kommandolinjeverktøy for å utføre ssh parallelt på en rekke verter. Med den kan du sende input til alle ssh-prosessene, fra et shell-skript.

Krav

  1. Installer Pssh for å kjøre kommandoer på flere eksterne Linux-servere
  2. Du må bruke SSH passordløs autentisering for alle eksterne servere.

Lag et Shell-skript

Derfor må du begynne med å lage et skript som inneholder Linux-kommandoene du vil kjøre på de forskjellige serverne. I dette eksemplet vil vi skrive et skript som samler inn følgende informasjon fra flere servere:

  • Sjekk oppetid på servere
  • Sjekk hvem som er pålogget og hva de gjør
  • List topp 5 kjørende prosesser i henhold til minnebruk.

Lag først et skript kalt commands.sh med favorittredigeringsprogrammet ditt.

vi commands.sh

Deretter legger du til følgende kommandoer til skriptet 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

Lagre filen og lukk den. Gjør deretter skriptet kjørbart som vist.

chmod +x commands.sh

Opprett PSSH Hosts-fil

Deretter legger du til listen over servere du vil kjøre kommandoene på, i en hosts.txt-fil, i formatet [user@]host[:port] eller bare gi serveren IP-adresser.

Men vi foreslår at du bruker ssh-aliaser som kan spesifiseres i .ssh/config-filen som forklart i hvordan du konfigurerer tilpassede ssh-tilkoblinger for å forenkle ekstern tilgang.

Denne metoden er mer effektiv og pålitelig, den lar deg spesifisere konfigurasjonsalternativer (som vertsnavn, identifikasjonsfil, port, brukernavn osv..) for hver ekstern server.

Følgende er vårt eksempel på ssh hosts alias fil a.k. en brukerspesifikk ssh konfigurasjonsfil.

vi ~/.ssh/config

Deretter oppretter du en hosts.txt-fil, her kan du ganske enkelt spesifisere aliasene (navn definert ved hjelp av Host-nøkkelord i .ssh/config-fil) som vist.

vi hosts.txt 

Legg til serveraliasene.

server1
server2
server3

Kjør kommandoer via et skript på flere Linux-servere

Kjør nå følgende pssh-kommando ved å spesifisere hosts.txt-filen sammen med skriptet som inneholder flere kommandoer for å kjøre på flere eksterne servere.

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

Betydningen av flaggene som brukes i kommandoen ovenfor:

  • -h – leser vertsfilen.
  • -P – forteller pssh å vise utdata når den kommer.
  • -I – leser inndata og sender til hver ssh-prosess.

Det er det! I denne artikkelen viste vi hvordan du utfører flere kommandoer på flere servere i Linux. Du kan dele eventuelle tanker knyttet til dette emnet via kommentarfeltet nedenfor.