Több parancs futtatása több Linux szerveren
Ha több Linux-kiszolgálót kezel, és több parancsot szeretne futtatni az összes Linux-kiszolgálón, de fogalma sincs, hogyan kell ezt megtenni. Aggodalomra semmi ok, ebben az egyszerű szerverkezelési útmutatóban megmutatjuk, hogyan futtathat több parancsot egyszerre több Linux szerveren.
Ennek eléréséhez használhatja a pssh (párhuzamos ssh) programot, amely egy parancssori segédprogram az ssh párhuzamos végrehajtására számos gazdagépen. Ezzel az összes ssh-folyamathoz bemenetet küldhet egy shell-szkriptből.
Követelmények
- Telepítse a Pssh-t a parancsok futtatásához több távoli Linux-kiszolgálón
- Minden távoli kiszolgálóhoz jelszó nélküli SSH-hitelesítést kell használnia.
Hozzon létre egy Shell Scriptet
Ezért először el kell készítenie egy szkriptet, amely tartalmazza a különböző szervereken végrehajtani kívánt Linux-parancsokat. Ebben a példában egy szkriptet fogunk írni, amely a következő információkat gyűjti össze több szerverről:
- Ellenőrizze a szerverek üzemidejét
- Ellenőrizze, hogy ki van bejelentkezve és mit csinál
- Sorolja fel az 5 legnépszerűbb futó folyamatot a memóriahasználat szerint.
Először hozzon létre egy commands.sh nevű szkriptet kedvenc szerkesztőjével.
vi commands.sh
Ezután adja hozzá a következő parancsokat a szkripthez az ábra szerint.
#!/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
Mentse el a fájlt és zárja be. Ezután tegye a szkriptet végrehajthatóvá az ábrán látható módon.
chmod +x commands.sh
Hozzon létre PSSH Hosts fájlt
Ezután adja hozzá azoknak a szervereknek a listáját, amelyeken futtatni szeretné a parancsokat egy hosts.txt fájlban, [felhasználó@]host[:port]
vagy egyszerűen adja meg a szerver IP-címét.
De azt javasoljuk, hogy használjon ssh-álneveket, amelyeket az .ssh/config fájlban lehet megadni, amint azt az egyéni ssh-kapcsolatok konfigurálása című részben ismertetjük a távoli hozzáférés egyszerűsítése érdekében.
Ez a módszer hatékonyabb és megbízhatóbb, lehetővé teszi a konfigurációs beállítások megadását (például gazdagépnév, azonosító fájl, port, felhasználónév stb.) minden távoli szerverhez.
Az alábbiakban egy minta ssh hosts alias fájlunk látható, más néven felhasználóspecifikus ssh konfigurációs fájl.
vi ~/.ssh/config
Ezután hozzon létre egy hosts.txt fájlt, itt egyszerűen megadhatja az álneveket (az .ssh/config fájlban a Host kulcsszóval meghatározott neveket) az ábra szerint.
vi hosts.txt
Adja hozzá a szerver álneveket.
server1
server2
server3
Futtassa a parancsokat egy szkripten keresztül több Linux-kiszolgálón
Most futtassa a következő pssh parancsot úgy, hogy megadja a hosts.txt fájlt a több parancsot tartalmazó szkripttel együtt, amelyek több távoli kiszolgálón futnak.
pssh -h hosts.txt -P -I<./commands.sh
A fenti parancsban használt zászlók jelentése:
-h
– beolvassa a hosts fájlt.-P
– utasítja a pssh-t, hogy megjelenítse a kimenetet, amint megérkezik.-I
– beolvassa a bemenetet és elküldi az egyes ssh folyamatoknak.
Ez az! Ebben a cikkben bemutattuk, hogyan lehet több parancsot végrehajtani több szerveren Linux alatt. Az alábbi megjegyzés részben megoszthatja a témával kapcsolatos gondolatait.