Vyhledávání na webu

Jak spouštět více příkazů na více serverech Linux


Pokud spravujete více serverů Linux a chcete spouštět více příkazů na všech serverech Linux, ale nemáte ponětí, jak to udělat. Není třeba se obávat, v tomto jednoduchém průvodci správou serveru vám ukážeme, jak spouštět více příkazů na více serverech Linux současně.

Chcete-li toho dosáhnout, můžete použít program pssh (paralelní ssh), nástroj příkazového řádku pro paralelní spouštění ssh na řadě hostitelů. S ním můžete posílat vstup všem procesům ssh ze skriptu shellu.

Požadavky

  1. Nainstalujte Pssh pro spouštění příkazů na více vzdálených linuxových serverech
  2. Pro všechny vzdálené servery musíte používat ověřování SSH bez hesla.

Vytvořte skript Shell

Proto musíte začít přípravou skriptu, který obsahuje linuxové příkazy, které chcete spouštět na různých serverech. V tomto příkladu napíšeme skript, který bude shromažďovat následující informace z více serverů:

  • Zkontrolujte dobu provozu serverů
  • Zkontrolujte, kdo je přihlášen a co dělá
  • Uveďte 5 nejběžnějších procesů podle využití paměti.

Nejprve vytvořte skript s názvem commands.sh pomocí svého oblíbeného editoru.

vi commands.sh

Dále přidejte do skriptu následující příkazy, jak je znázorněno.

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

Uložte soubor a zavřete jej. Poté udělejte skript spustitelný podle obrázku.

chmod +x commands.sh

Vytvořte soubor PSSH Hosts

Dále přidejte seznam serverů, na kterých chcete spouštět příkazy, do souboru hosts.txt ve formátu [uživatel@]hostitel[:port] nebo stačí zadat IP adresy serveru.

Doporučujeme však používat aliasy ssh, které lze zadat v souboru .ssh/config, jak je vysvětleno v části, jak nakonfigurovat vlastní připojení ssh pro zjednodušení vzdáleného přístupu.

Tato metoda je efektivnější a spolehlivější, umožňuje specifikovat možnosti konfigurace (jako je název hostitele, identifikační soubor, port, uživatelské jméno atd..) pro každý vzdálený server.

Následuje náš ukázkový soubor aliasů hostitelů ssh a.k.a uživatelský konfigurační soubor ssh.

vi ~/.ssh/config

Dále vytvořte soubor hosts.txt, zde můžete jednoduše zadat aliasy (názvy definované pomocí klíčového slova Host v souboru .ssh/config), jak je uvedeno na obrázku.

vi hosts.txt 

Přidejte aliasy serveru.

server1
server2
server3

Spusťte příkazy prostřednictvím skriptu na více serverech Linux

Nyní spusťte následující příkaz pssh zadáním souboru hosts.txt spolu se skriptem, který obsahuje více příkazů pro spuštění na více vzdálených serverech.

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

Význam příznaků použitých ve výše uvedeném příkazu:

  • -h – přečte soubor hostitelů.
  • -P – říká pssh, aby zobrazoval výstup, jakmile přijde.
  • -I – čte vstup a posílá ho každému ssh procesu.

A je to! V tomto článku jsme si ukázali, jak spouštět více příkazů na více serverech v Linuxu. Jakékoli myšlenky týkající se tohoto tématu můžete sdílet prostřednictvím sekce komentářů níže.