Kako pokrenuti više naredbi na više Linux servera


Ako upravljate višestrukim Linux serverima i želite pokrenuti više komandi na svim Linux serverima, ali nemate pojma kako to učiniti. Nema potrebe za brigom, u ovom jednostavnom vodiču za upravljanje serverom, pokazaćemo vam kako da pokrenete više komandi na više Linux servera istovremeno.

Da biste to postigli, možete koristiti pssh (paralelni ssh) program, uslužni program komandne linije za paralelno izvršavanje ssh-a na brojnim hostovima. Pomoću njega možete poslati ulaz svim ssh procesima iz shell skripte.

Zahtjevi

  1. Instalirajte Pssh za pokretanje komandi na više udaljenih Linux servera
  2. Morate koristiti SSH autentifikaciju bez lozinke za sve udaljene servere.

Kreirajte shell skriptu

Stoga morate započeti s pripremom skripte koja sadrži Linux komande koje želite izvršiti na različitim serverima. U ovom primjeru ćemo napisati skriptu koja će prikupljati sljedeće informacije sa više servera:

  • Provjerite vrijeme rada servera
  • Provjerite ko je prijavljen i šta radi
  • Navedite top 5 pokrenutih procesa prema korištenju memorije.

Prvo kreirajte skriptu pod nazivom commands.sh sa svojim omiljenim uređivačem.

vi commands.sh

Zatim dodajte sljedeće naredbe u skriptu kao što je prikazano.

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

Sačuvajte datoteku i zatvorite je. Zatim učinite skriptu izvršnom kao što je prikazano.

chmod +x commands.sh

Kreirajte PSSH hosts datoteku

Zatim dodajte listu servera na kojima želite da pokrenete komande, u datoteci hosts.txt, u formatu [user@]host[:port] ili jednostavno dajte serveru IP adrese.

Ali predlažemo da koristite ssh pseudonime koji se mogu specificirati u datoteci .ssh/config kao što je objašnjeno u tome kako konfigurirati prilagođene ssh veze za pojednostavljenje udaljenog pristupa.

Ova metoda je efikasnija i pouzdanija, omogućava vam da specificirate opcije konfiguracije (kao što su ime hosta, identifikacijski fajl, port, korisničko ime itd.) za svaki udaljeni server.

Slijedi naš primjer datoteke ssh hostova aliasa a.k.a ssh konfiguracijska datoteka specifična za korisnika.

vi ~/.ssh/config

Zatim kreirajte datoteku hosts.txt, ovdje možete jednostavno odrediti pseudonime (imena definirana pomoću ključne riječi Host u .ssh/config datoteci) kao što je prikazano.

vi hosts.txt 

Dodajte pseudonime servera.

server1
server2
server3

Pokrenite komande putem skripte na više Linux servera

Sada pokrenite sljedeću naredbu pssh navodeći hosts.txt datoteku zajedno sa skriptom koja sadrži više komandi za pokretanje na više udaljenih servera.

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

Značenje zastava korištenih u gornjoj naredbi:

  • -h – čita hosts fajl.
  • -P – govori pssh-u da prikaže izlaz čim stigne.
  • -I – čita ulaz i šalje svakom ssh procesu.

To je to! U ovom članku smo pokazali kako izvršiti više naredbi na više servera u Linuxu. Možete podijeliti bilo koje misli u vezi sa ovom temom putem odjeljka za komentare ispod.