Zoeken op website

Hoe u meerdere opdrachten op meerdere Linux-servers kunt uitvoeren


Als u meerdere Linux-servers beheert en u meerdere opdrachten op alle Linux-servers wilt uitvoeren, maar u heeft geen idee hoe u dat moet doen. U hoeft zich geen zorgen te maken, in deze eenvoudige serverbeheergids laten we u zien hoe u meerdere opdrachten tegelijkertijd op meerdere Linux-servers kunt uitvoeren.

Om dit te bereiken kun je het pssh-programma (parallel ssh) gebruiken, een opdrachtregelhulpprogramma voor het parallel uitvoeren van ssh op een aantal hosts. Hiermee kun je vanuit een shellscript invoer naar alle ssh-processen sturen.

Vereisten

  1. Installeer Pssh om opdrachten uit te voeren op meerdere externe Linux-servers
  2. U moet SSH-wachtwoordloze authenticatie gebruiken voor alle externe servers.

Maak een Shell-script

Daarom moet u beginnen met het voorbereiden van een script dat de Linux-opdrachten bevat die u op de verschillende servers wilt uitvoeren. In dit voorbeeld schrijven we een script dat de volgende informatie van meerdere servers verzamelt:

  • Controleer de uptime van servers
  • Bekijk wie er ingelogd is en wat ze doen
  • Maak een lijst van de vijf actieve processen op basis van geheugengebruik.

Maak eerst een script met de naam commands.sh met uw favoriete editor.

vi commands.sh

Voeg vervolgens de volgende opdrachten toe aan het script, zoals weergegeven.

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

Sla het bestand op en sluit het. Maak het script vervolgens uitvoerbaar zoals weergegeven.

chmod +x commands.sh

Maak een PSSH-hostbestand

Voeg vervolgens de lijst met servers toe waarop u de opdrachten wilt uitvoeren, in een hosts.txt bestand, in de indeling [user@]host[:port] of geef eenvoudigweg de IP-adressen van de server.

Maar we raden u aan ssh-aliassen te gebruiken die kunnen worden opgegeven in het bestand .ssh/config, zoals uitgelegd in het configureren van aangepaste ssh-verbindingen om externe toegang te vereenvoudigen.

Deze methode is efficiënter en betrouwbaarder en stelt u in staat configuratie-opties (zoals hostnaam, identificatiebestand, poort, gebruikersnaam enz.) voor elke externe server te specificeren.

Hieronder volgt ons voorbeeld van een ssh-hosts-aliassenbestand, oftewel een gebruikersspecifiek ssh-configuratiebestand.

vi ~/.ssh/config

Maak vervolgens een hosts.txt bestand aan. Hier kunt u eenvoudig de aliassen opgeven (namen gedefinieerd met het trefwoord Host in .ssh/config bestand), zoals weergegeven.

vi hosts.txt 

Voeg de serveraliassen toe.

server1
server2
server3

Voer opdrachten uit via een script op meerdere Linux-servers

Voer nu de volgende pssh-opdracht uit door het bestand hosts.txt op te geven samen met het script dat meerdere opdrachten bevat die op meerdere externe servers kunnen worden uitgevoerd.

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

Betekenis van de vlaggen die in het bovenstaande commando worden gebruikt:

  • -h – leest het hosts-bestand.
  • -P – vertelt pssh om de uitvoer weer te geven zodra deze binnenkomt.
  • -I – leest invoer en verzendt naar elk ssh-proces.

Dat is het! In dit artikel hebben we laten zien hoe je meerdere opdrachten op meerdere servers in Linux kunt uitvoeren. U kunt uw gedachten over dit onderwerp delen via het commentaargedeelte hieronder.