In Zeiten von Ansible gelingt vieles unter mehreren Linux-Rechnern (und viel mehr) schneller, ohne etwas auf jedem Rechner einzeln auszuführen – etwa über SSH. Um jetzt aber schnell einen Befehl gleichzeitig auf mehreren Linux-Systemen auszuführen, muss man nicht gleich eine Ansible-Regel schreiben – hier kann auch pssh helfen.
Inhaltsverzeichnis
pssh installieren
Unter auf Debian basierenden Linux-Distributionen gelingt dies wie üblich ganz einfach über die Paket-Verwaltung, etwa über Synaptic – oder noch schneller natürlich als root auf dem Terminal:
apt update
apt install pssh
Unter Distributionen, die das Paket nicht in ihren Repos mitführen, installieren Sie die Python-Paket-Verwaltung und über diese das Paket „pssh„.
pssh nutzen
Als Erstes benötigen Sie eine Host-Liste, einfach gesagt eine Textdatei, die die Hosts beinhaltet, auf denen Sie mittels pssh Befehle ausführen wollen, SSH muss auf diesen Hosts natürlich aktiv sein und Sie benötigen dort einen Benutzer und root für administrative Befehle. Ein Beispiel – ich nenne diese Datei jetzt ganz einfach „pssh-hosts.txt„. Diese Datei beinhaltet einen Host je Zeile – entweder den Hostnamen oder die IP-Adresse und den SSH-Port – also etwa:
192.168.0.2:22
192.168.0.3:22
102.168.0.4:22
Jetzt zu den Optionen – mit -h geben Sie die erstellte Hosts-Datei an, mit -l user geben Sie den Benutzer an, unter dem der Befehl ausgeführt werden soll, mit -A geben Sie den Befehl an – inklusive Optionen unter Anführungszeichen. Mit -i sorgen Sie dafür, dass Sie auch Rückmeldungen als Ausgabe bekommen.
Als Beispiel will ich den Befehl:
df -h
auf den Systemen als root ausführen – unter Debian als Debian-Paket installiert, nutzen Sie parallel-ssh, ansonsten pssh:
parallel-pssh -h pssh-hosts.txt -l root -i -A "df -h"
Als Beispiel-Ausgabe:
[1] 12:53:27 [ERFOLGREICH] 192.168.0.2:22
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 7,7G 0 7,7G 0% /dev
tmpfs 1,6G 2,3M 1,6G 1% /run
efivarfs 192K 183K 4,5K 98% /sys/firmware/efi/efivars
/dev/mapper/debian--hp--vg-root 467G 105G 339G 24% /
tmpfs 7,7G 270M 7,5G 4% /dev/shm
tmpfs 5,0M 8,0K 5,0M 1% /run/lock
tmpfs 1,0M 0 1,0M 0% /run/credentials/systemd-journald.service
tmpfs 7,7G 6,3M 7,7G 1% /tmp
/dev/nvme0n1p2 456M 265M 166M 62% /boot
/dev/nvme0n1p1 511M 4,4M 507M 1% /boot/efi
tmpfs 1,6G 128K 1,6G 1% /run/user/1000
[2] 12:53:27 [ERFOLGREICH] 192.168.0.3:22
...
...
...
[3] 12:53:27 [ERFOLGREICH] 102.168.0.4:22
---
---
...
Die Software arbeitet nach der Eingabe des Passwortes einen Rechner nach dem anderen in der Textdatei von oben nach unten ab. Weitere Hilfe bietet natürlich die Manpage mit:
man parallel-pssh
Oder:
pssh --help
Nachdem Sie pssh erst einmal installiert haben, haben Sie auch noch weitere Werkzeuge dabei
- pscp / parallel-scp – zum Kopieren von Dateien / Verzeichnissen auf mehrere Systeme.
- pnuke / parallel-nuke – Prozesse auf mehreren Systemen beenden.
- prsync / parallel-rsync – zum Syncen von Dateien / Verzeichnissen auf mehrere Systeme.
- pslurp / parallel-slurp – zum Kopieren von Dateien / Verzeichnissen von mehreren Systemen auf einen gewünschten oder lokalen Host.
Wie immer natürlich auch:
man parallel-scp
man parallel-nuke
man parallel-rsync
man parallel-slurp
Oder eben:
pscp --help
pnuke --help
prsync --help
pslurp --help

Noch keine Reaktion