Kategorien
Server Administration

Bash Script um Konsolen Befehle auf mehreren Servern auszuführen

Wenn man einen Cluster von Severn administrieren muss, hilft es sehr, wenn man Befehler „in einem Rutsch“ auf allen Mitgliedern des Clusters ausführen kann mit Hilfe eines einzigen Konsolen Befehls.

Wenn man z.B. den Befehl: apt-get update ausführen will auf 3 Servern, kann man folgendes Script benutzen (Dateiname ist „each“ und auf dem Master abzulegen):

#!/bin/bash
echo -e "\nServer1:"
ssh serverName1$*
echo -e "\nnServer2:"
ssh serverName2$*
echo -e "\nnServer3:"
ssh serverName3$*

Der Aufruf erfolgt folgender Maßen auf der Konsole:

each "apt-get update"

Das Skript verbindet sich dann per SSH auf die Server und führt auf jedem den Befehl apt-get update aus und zeigt das Ergebnis der Operation auf der Konsole an. Vorrausetzung ist, dass die Server ohne Passwort Zugriff aufeinander haben, was in einem Cluster der Fall sein sollte. Der Befehl sollte vom Master des Clusters aus ausgeführt werden.