Kaip paleisti kelias komandas keliuose „Linux“ serveriuose


Jei valdote kelis „Linux“ serverius ir norite paleisti kelias komandas visuose „Linux“ serveriuose, tačiau neturite supratimo, kaip tai padaryti. Nereikia jaudintis, šiame paprastame serverio valdymo vadove parodysime, kaip vienu metu paleisti kelias komandas keliuose „Linux“ serveriuose.

Norėdami tai pasiekti, galite naudoti programą pssh (lygiagretus ssh), komandų eilutės įrankį, skirtą ssh vykdyti lygiagrečiai keliuose kompiuteriuose. Su juo galite siųsti įvestį į visus ssh procesus iš apvalkalo scenarijaus.

  1. Įdiekite „Pssh“ komandoms paleisti keliuose nuotoliniuose „Linux“ serveriuose
  2. Visuose nuotoliniuose serveriuose turite naudoti SSH autentifikavimą be slaptažodžių.

Sukurkite „Shell Script“

Todėl pirmiausia turite paruošti scenarijų, kuriame yra „Linux“ komandos, kurias norite vykdyti skirtinguose serveriuose. Šiame pavyzdyje parašysime scenarijų, kuris iš kelių serverių surinks šią informaciją:

  • Patikrinkite serverių veikimo laiką
  • Patikrinkite, kas yra prisijungęs ir ką daro
  • Pateikite 5 populiariausius vykstančius procesus pagal atminties naudojimą.

Pirmiausia sukurkite scenarijų pavadinimu commands.sh naudodami savo mėgstamą redaktorių.

# vi commands.sh

Tada pridėkite šias komandas prie scenarijaus, kaip parodyta.

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

Išsaugokite failą ir uždarykite jį. Tada padarykite scenarijų vykdomąjį, kaip parodyta.

# chmod +x commands.sh

Sukurkite PSSH kompiuterių failą

Tada pridėkite serverių, kuriuose norite paleisti komandas, sąrašą hosts.txt faile formatu [[email ] host [: port] arba tiesiog nurodykite serverio IP adresus.

Bet mes siūlome naudoti ssh slapyvardžius, kuriuos galima nurodyti .ssh/config faile, kaip paaiškinta, kaip sukonfigūruoti pasirinktinius ssh ryšius, kad supaprastintumėte nuotolinę prieigą.

Šis metodas yra efektyvesnis ir patikimesnis, jis leidžia jums nurodyti kiekvieno nuotolinio serverio konfigūravimo parinktis (pvz., Pagrindinio kompiuterio pavadinimą, identifikuoti failą, prievadą, vartotojo vardą ir pan.).

Toliau pateikiamas mūsų pavyzdinis ssh prieglobos slapyvardžių failas, taip pat vartotojo specifinis ssh konfigūracijos failas.

# vi ~/.ssh/config

Tada sukurkite failą hosts.txt, čia galite tiesiog nurodyti slapyvardžius (pavadinimus, apibrėžtus naudojant pagrindinio kompiuterio raktinį žodį .ssh/config faile), kaip parodyta.

# vi hosts.txt 

Pridėkite serverio pseudonimus.

server1
server2
server3

Vykdykite komandas per scenarijų keliuose „Linux“ serveriuose

Dabar paleiskite šią pssh komandą nurodydami failą hosts.txt kartu su scenarijumi, kuriame yra kelios komandos, skirtos paleisti keliuose nuotoliniuose serveriuose.

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

Pirmiau pateiktoje komandoje naudojamų vėliavų reikšmė:

  • -h - nuskaito pagrindinio kompiuterio failą.
  • -P - liepia pssh parodyti išvestį, kai ji bus.
  • -I - nuskaito įvestį ir siunčia į kiekvieną ssh procesą.

Viskas! Šiame straipsnyje mes parodėme, kaip vykdyti kelias komandas keliuose „Linux“ serveriuose. Žemiau esančiame komentarų skyriuje galite pasidalinti bet kokiomis mintimis, susijusiomis su šia tema.