Website-Suche

DSH (Dancer's Shell) – Befehle auf mehreren Linux-Hosts ausführen


Systemadministratoren sind sich bewusst, wie wichtig es ist, zahlreiche Maschinen in kurzer Zeit und möglichst mit minimaler physischer Bewegung überwachen und verwalten zu können. Ob es sich um eine kleine Cloud-Umgebung oder einen großen Servercluster handelt, die Möglichkeit, Computer zentral zu verwalten, ist unerlässlich.

Um dies teilweise zu erreichen, zeige ich Ihnen, wie Sie ein praktisches kleines Tool namens DSH (Dancer’s Shell/Distributed Shell) verwenden, mit dem ein Benutzer Befehle auf mehreren Computern ausführen kann.

Was ist DSH?

DSH ist die Abkürzung für „Distributed Shell“ oder „Dancer's Shell“, ein frei verfügbares Tool auf den meisten großen Linux-Distributionen, das aber auch verfügbar sein kann lässt sich leicht aus einer Quelle erstellen, wenn Ihre Distribution sie nicht in ihrem Paket-Repository enthält.

Installieren Sie DSH (Distributed Shell) unter Linux

Für den Umfang dieses Tutorials gehen wir von einer Debian/Ubuntu-Umgebung aus. Wenn Sie eine andere Distribution verwenden, ersetzen Sie bitte die entsprechenden Befehle für Ihren Paketmanager.

Auf Debian-basierten Distributionen können Sie DSH mit dem folgenden apt-Befehl im Terminal installieren.

sudo apt install dsh

Bei RHEL-basierten Distributionen müssen Sie es aus Quell-TAR-Balls kompilieren. Stellen Sie jedoch vorher sicher, dass Sie die Bibliothek „libdshconfig“ kompilieren und installieren.

wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.10.cvs.1.tar.gz
tar xfz libdshconfig*.tar.gz 
cd libdshconfig-*
./configure ; make
sudo make install

Dann kompilieren Sie dsh und installieren es.

wget https://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.22.0.tar.gz
tar xfz dsh-0.22.0.tar.gz
cd dsh-*
./configure ; make 
sudo make install

So verwenden Sie DSH unter Linux

Die Hauptkonfigurationsdatei „/etc/dsh/dsh.conf“ (für Debian) und „/usr/local/etc/dsh.conf “ (für Red Hat) ist ziemlich einfach, aber da rsh ein unverschlüsseltes Protokoll ist, werden wir SSH als Remote-Shell verwenden.

Suchen Sie mit dem Texteditor Ihrer Wahl nach dieser Zeile:

remoteshell =rsh

und ändern Sie es in:

remoteshell =ssh

Es gibt weitere Optionen, die Sie hier angeben können, wenn Sie möchten, und es gibt viele davon auf der dsh-Manpage. Vorerst akzeptieren wir die Standardeinstellungen und werfen einen Blick auf die nächste Datei, /etc/dsh/machines.list (für Debian).

Für Red Hat-basierte Systeme müssen Sie eine Datei mit dem Namen „machines.list“ im Ordner „/usr/local/etc/“ erstellen. Verzeichnis.

Die Syntax hier ist ziemlich einfach. Sie müssen lediglich die Anmeldeinformationen einer Maschine (Hostname, IP-Adresse oder FQDN) einzeln pro Zeile eingeben.

Hinweis: Wenn Sie gleichzeitig auf mehr als einen Computer zugreifen, müssen Sie auf allen Ihren Computern schlüsselbasiertes, passwortloses SSH einrichten. Dies erleichtert nicht nur den Zugriff, sondern stärkt auch die Sicherheit Ihres Computers.

Meine Datei „/etc/dsh/machines.list“ oder „/usr/local/etc/machines.list“ lautet:

172.16.25.125
172.16.25.126

Sobald Sie die Anmeldeinformationen der Maschinen eingegeben haben, auf die Sie zugreifen möchten, führen wir einen einfachen Befehl wie „Uptime“ für alle Maschinen aus.

dsh -aM -c uptime

Beispielausgabe:

172.16.25.125: 05:11:58 up 40 days, 51 min, 0 users, load average: 0.00, 0.01, 0.05
172.16.25.126: 05:11:47 up 13 days, 38 min, 0 users, load average: 0.00, 0.01, 0.05

Was macht der Befehl „dsh“?

Ziemlich einfach. Zuerst haben wir dsh ausgeführt und ihm die Option „-a“ übergeben, die besagt, dass der Befehl „uptime“ an „ALL“ der in „/etc/dsh/machines.list“ aufgeführten Maschinen.

Als nächstes haben wir die Option „-M“ angegeben, die besagt, dass der „Maschinenname“ (angegeben in „/etc/dsh/machines.list<“) zurückgegeben werden soll“) zusammen mit der Ausgabe des Befehls uptime. (Sehr nützlich zum Sortieren, wenn ein Befehl auf mehreren Computern ausgeführt wird).

Die Option „-c“ steht für „auszuführender Befehl“, in diesem Fall „uptime“.

DSH kann auch mit Gruppen von Maschinen in der Datei „/etc/dsh/groups/“ konfiguriert werden. Dabei handelt es sich um eine Datei mit einer Liste von Maschinen im gleichen Format wie die Datei „/etc/dsh/machines.list“. Wenn Sie dsh für eine Gruppe ausführen, geben Sie den Gruppennamen nach der Option „-g“ an.

Für Red Hat-basierte Systeme müssen Sie einen Ordner mit dem Namen „groups“ im Verzeichnis „/usr/local/etc/“ erstellen. In diesem „groups“-Verzeichnis erstellen Sie eine Datei namens „cluster“.

Führen Sie beispielsweise den Befehl „w“ auf allen Maschinen aus, die in der Gruppendatei „cluster“ „/etc/dsh/groups/cluster“ aufgeführt sind ” oder „/usr/local/etc/groups/cluster“.

dsh -M -g cluster -c w

DSH bietet viel mehr Flexibilität und dieses Tutorial kratzt nur an der Oberfläche. Neben der Ausführung von Befehlen kann DSH auch zum Übertragen von Dateien, zum Installieren von Software, zum Hinzufügen von Routen und vielem mehr verwendet werden.

Für einen Systemadministrator, der die Verantwortung für ein großes Netzwerk trägt, ist dies von unschätzbarem Wert.