Kuinka suorittaa useita komentoja useilla Linux-palvelimilla
Jos hallitset useita Linux-palvelimia ja haluat suorittaa useita komentoja kaikilla Linux-palvelimilla, mutta sinulla ei ole aavistustakaan siitä, miten se tehdään. Ei ole syytä huoleen, tässä yksinkertaisessa palvelimen hallintaoppaassa näytämme sinulle kuinka suorittaa useita komentoja useilla Linux-palvelimilla samanaikaisesti.
Tämän saavuttamiseksi voit käyttää pssh (parallel ssh) -ohjelmaa, komentoriviohjelmaa ssh:n suorittamiseen rinnakkain useilla isännillä. Sen avulla voit lähettää syötteen kaikkiin ssh-prosesseihin shell-skriptistä.
Vaatimukset
- Asenna Pssh suorittaaksesi komentoja useilla Linux-etäpalvelimilla
- Sinun on käytettävä salasanatonta SSH-todennusta kaikissa etäpalvelimissa.
Luo Shell-skripti
Siksi sinun on aloitettava valmistelemalla komentosarja, joka sisältää Linux-komennot, jotka haluat suorittaa eri palvelimilla. Tässä esimerkissä kirjoitamme komentosarjan, joka kerää seuraavat tiedot useilta palvelimilta:
- Tarkista palvelimien käyttöaika
- Tarkista kuka on kirjautunut sisään ja mitä he tekevät
- Listaa 5 parasta käynnissä olevaa prosessia muistin käytön mukaan.
Luo ensin skripti nimeltä commands.sh suosikkieditorillasi.
vi commands.sh
Lisää seuraavaksi seuraavat komennot skriptiin kuvan mukaisesti.
#!/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
Tallenna tiedosto ja sulje se. Tee sitten komentosarjasta suoritettava kuva kuvan mukaisesti.
chmod +x commands.sh
Luo PSSH Hosts -tiedosto
Lisää seuraavaksi luettelo palvelimista, joilla haluat suorittaa komennot hosts.txt-tiedostoon muodossa [user@]host[:port]
tai anna vain palvelimen IP-osoitteet.
Suosittelemme kuitenkin käyttämään ssh-aliaksia, jotka voidaan määrittää .ssh/config-tiedostossa, kuten on selitetty mukautettujen ssh-yhteyksien määrittämisessä etäkäytön yksinkertaistamiseksi.
Tämä menetelmä on tehokkaampi ja luotettavampi, ja sen avulla voit määrittää kokoonpanoasetukset (kuten isäntänimi, tunnistetiedosto, portti, käyttäjätunnus jne.) jokaiselle etäpalvelimelle.
Seuraavassa on esimerkki ssh-isäntäaliaksien tiedostosta eli käyttäjäkohtaisesta ssh-määritystiedostosta.
vi ~/.ssh/config
Luo seuraavaksi hosts.txt-tiedosto, jossa voit määrittää aliakset (nimet, jotka on määritetty Host-avainsanalla .ssh/config-tiedostossa) kuvan mukaisesti.
vi hosts.txt
Lisää palvelimen aliakset.
server1
server2
server3
Suorita komentoja komentosarjan kautta useilla Linux-palvelimilla
Suorita nyt seuraava pssh-komento määrittämällä hosts.txt-tiedosto ja komentosarja, joka sisältää useita komentoja, jotka suoritetaan useilla etäpalvelimilla.
pssh -h hosts.txt -P -I<./commands.sh
Yllä olevassa komennossa käytettyjen lippujen merkitys:
-h
– lukee hosts-tiedoston.-P
– käskee pssh:n näyttämään tulosteen saapuessaan.-I
– lukee syötteen ja lähettää jokaiselle ssh-prosessille.
Se siitä! Tässä artikkelissa näytimme kuinka suorittaa useita komentoja useilla palvelimilla Linuxissa. Voit jakaa tähän aiheeseen liittyviä ajatuksia alla olevan kommenttiosion kautta.