Executarea comenzii la distanță prin ssh

Am decis să împărtășesc munca mea mică. Există situații în care aveți nevoie pentru a efectua același tip de acțiune pe mai multe servere, puteți urca pe mâini, dar atunci când aveți câteva zeci sau chiar mai multe sisteme, devine lungă și obositoare, acest proces poate fi automatizat.
Pentru a face acest lucru, am scris un script foarte mic, este nevoie de o listă de servere, se conectează la ele pe ssh, execută comanda și se deconectează, și așa mai departe pe întreaga listă. De asemenea, el scrie la consola numele serverului la care este conectat. Această metodă va funcționa pe toate sistemele Nix! La mașinile de la distanță, trebuie să aveți permisiunea de a vă conecta la cheie, pentru a o configura, puteți citi în articol: Login ssh by key. de asemenea, dacă unele acțiuni necesită ridicarea privilegiilor în sistem, trebuie să permiteți sudo să pornească fără o parolă, după cum puteți citi despre volumul din acest articol: sudo fără parolă

Pentru aceasta trebuie să creați 2 fișiere:
1 - scriptul în sine se numește remote_command.sh
2 - lista de servere server_list.txt

Imaginați-vă o situație, trebuie să mergem la server și să reporniți un anumit serviciu, de exemplu nginx, atunci scriptul are forma:


În consola "evacuare" a scenariului vom avea următoarea formă:
conectați-vă la server1.example.org
conectați-vă la server2.example.org
conectați-vă la test3.example.org
conectați-vă la test4.example.org
conectați-vă la web5.example.org
Dacă comanda este complexă și lungă, iar lista serverelor este mare, puteți face altceva, mai interesant, iar scenariul va face totul pentru dvs.
pe aceasta voi termina, vă mulțumesc pentru atenție.

Articole similare