Weboldal keresés

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

  1. Telepítse a Pssh-t a parancsok futtatásához több távoli Linux-kiszolgálón
  2. 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.