PSSH - Ausführen von Befehlen auf mehreren Remote-Linux-Systemen
Kein Zweifel, dass OpenSSH eines der am weitesten verbreiteten und leistungsstärksten Tools für Linux ist, das es Ihnen ermöglicht, sich über eine Shell sicher mit entfernten Linux-Systemen zu verbinden und Dateien sicher zu und von entfernten Systemen zu übertragen.
Der größte Nachteil von OpenSSH ist jedoch, dass Sie denselben Befehl nicht auf mehreren Hosts gleichzeitig ausführen können und OpenSSH nicht dafür entwickelt wurde, solche Aufgaben auszuführen.
Hier kommt das Parallel SSH- oder PSSH-Tool ins Spiel, eine Python-basierte Anwendung, mit der Sie Befehle auf mehreren Hosts gleichzeitig parallel ausführen können.
Das PSSH-Tool enthält parallele Versionen von OpenSSH und verwandten Tools wie:
- PSSH – ist ein Programm zum parallelen Ausführen von SSH auf mehreren Remote-Hosts.
- PSCP – ist ein Programm zum parallelen Kopieren von Dateien auf eine Reihe von Hosts.
- Prsync – ist ein Programm zum effizienten parallelen Kopieren von Dateien auf mehrere Hosts.
- pnuke – beendet Prozesse auf mehreren Remote-Hosts parallel.
- PSLURP – kopiert Dateien von mehreren Remote-Hosts parallel auf einen zentralen Host.
Diese Tools eignen sich gut für Systemadministratoren, die mit großen Ansammlungen von Knoten in einem Netzwerk arbeiten.
Installieren von PSSH oder Parallel SSH unter Linux
In dieser Anleitung werden wir uns die Schritte ansehen, um die neueste Version des PSSH-Programms (d.h. Version 2.3.1) auf RHEL-basierten Distributionen wie Fedora, CentOS Stream, Rocky & AlmaLinux und Debian-basierten Distributionen wie Ubuntu und Linux Mint mit dem Befehl pip zu installieren.
Der pip-Befehl ist ein kleines Programm (Ersatz für easy_install Skript) zur Installation und Verwaltung des Indexes von Python-Softwarepaketen.
Bei RHEL-basierten Verteilungen
Bei RHEL-Distributionen müssen Sie zuerst das pip-Paket (d. h. python-pip) auf Ihrem System installieren, um das PSSH-Programm mit yum oder dnf zu installieren.
yum install python-pip
OR
dnf install python-pip
Nachdem Sie das pip-Tool installiert haben, können Sie das pssh-Paket mit dem Befehl pip installieren, wie unten gezeigt.
pip install pssh
Auf Debian-basierten Distributionen
Auf Debian-basierten Distributionen dauert es eine Minute, pssh mit dem Befehl pip zu installieren.
sudo apt install python-pip
sudo pip install pssh
Wie verwende ich pssh unter Linux?
Wenn Sie pssh verwenden, müssen Sie eine Hostdatei mit der Anzahl der Hosts zusammen mit der IP-Adresse und der Portnummer erstellen, die Sie benötigen, um über pssh eine Verbindung zu Remote-Systemen herzustellen.
Die Zeilen in der Hostdatei haben die folgende Form und können auch Leerzeilen und Kommentare enthalten.
192.168.0.10:22
192.168.0.11:22
Führen Sie einen einzelnen Befehl auf mehreren Linux-Servern aus
Sie können einen einzelnen Befehl auf verschiedenen oder mehreren Linux-Hosts in einem Netzwerk ausführen, indem Sie einen pssh-Befehl ausführen. Es gibt viele Optionen, die mit pssh verwendet werden können, wie unten beschrieben:
Wir werden uns einige Möglichkeiten zum Ausführen von Befehlen auf einer Reihe von Hosts mit pssh mit unterschiedlichen Optionen ansehen.
- Um die Hostdatei zu lesen, fügen Sie die Option
-h host_file-nameoder--hosts host_file_nameein. - Um einen Standardbenutzernamen auf allen Hosts einzufügen, die keinen bestimmten Benutzer definieren, verwenden Sie die Option
-lusername oder--user username. - Sie können auch die Standardausgabe und den Standardfehler anzeigen, wenn jeder Host abgeschlossen ist. Mit der Option
-ioder--inline. - Sie können festlegen, dass Verbindungen nach der angegebenen Anzahl von Sekunden ablaufen, indem Sie die Option
-t number_of_secondseinschließen. - Um die Standardausgabe in einem bestimmten Verzeichnis zu speichern, können Sie die Option
-o /directory/pathverwenden. - Um nach einem Passwort zu fragen und es an SSH zu senden, verwenden Sie die Option
-A.
Sehen wir uns ein paar Beispiele und die Verwendung von pssh-Befehlen an:
Ausführen von Befehlen auf mehreren Linux-Hosts
1. Um das Echo "Hello TecMint" auf dem Terminal der mehreren Linux-Hosts durch den Root-Benutzer auszuführen und nach dem Passwort des Root-Benutzers zu fragen, führen Sie diesen Befehl unten aus.
Wichtig: Denken Sie daran, dass alle Hosts in der Host-Datei enthalten sein müssen.
pssh -h pssh-hosts -l root -A echo "Hello TecMint"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 15:54:55 [SUCCESS] 192.168.0.10:22
[2] 15:54:56 [SUCCESS] 192.168.0.11:22
Hinweis: Im obigen Befehl "pssh-hosts" befindet sich eine Datei mit der Liste der IP-Adresse und der SSH-Portnummer des entfernten Linux-Servers, die Sie ausführen möchten, um Befehle auszuführen.
Ermitteln der Festplattenauslastung mehrerer Linux-Hosts
2. Um die Speicherplatznutzung auf mehreren Linux-Servern in Ihrem Netzwerk zu ermitteln, können Sie einen einzigen Befehl wie folgt ausführen.
pssh -h pssh-hosts -l root -A -i "df -hT"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 16:04:18 [SUCCESS] 192.168.0.10:22
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 38G 4.3G 32G 12% /
tmpfs tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 ext4 190M 25M 156M 14% /boot
[2] 16:04:18 [SUCCESS] 192.168.0.11:22
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 30G 9.8G 20G 34% /
devtmpfs devtmpfs 488M 0 488M 0% /dev
tmpfs tmpfs 497M 148K 497M 1% /dev/shm
tmpfs tmpfs 497M 7.0M 490M 2% /run
tmpfs tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 166M 332M 34% /boot
Finden Sie die Betriebszeit mehrerer Linux-Hosts
3. Wenn Sie die Betriebszeit mehrerer Linux-Server auf einmal wissen möchten, können Sie den folgenden Befehl ausführen.
pssh -h pssh-hosts -l root -A -i "uptime"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 16:09:03 [SUCCESS] 192.168.0.10:22
16:09:01 up 1:00, 2 users, load average: 0.07, 0.02, 0.00
[2] 16:09:03 [SUCCESS] 192.168.0.11:22
06:39:03 up 1:00, 2 users, load average: 0.00, 0.06, 0.09
Sie können die manuelle Eingabeseite für den Befehl pssh anzeigen, um viele weitere Optionen zu erhalten, mit denen Sie weitere Möglichkeiten zur Verwendung von pssh erfahren können.
pssh --help
Zusammenfassung
Paralleles SSH oder PSSH ist ein gutes Tool zum Ausführen von Befehlen in einer Umgebung, in der ein Systemadministrator mit vielen Servern in einem Netzwerk arbeiten muss. Es wird es einfach machen, dass Befehle remote auf verschiedenen Hosts in einem Netzwerk ausgeführt werden können.
Ich hoffe, Sie finden diese Anleitung nützlich und falls Sie zusätzliche Informationen zu PSSH oder Fehler bei der Installation oder Verwendung haben, können Sie gerne einen Kommentar hinterlassen.
