Website-Suche

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-name oder --hosts host_file_name ein.
  • Um einen Standardbenutzernamen auf allen Hosts einzufügen, die keinen bestimmten Benutzer definieren, verwenden Sie die Option -l username oder --user username.
  • Sie können auch die Standardausgabe und den Standardfehler anzeigen, wenn jeder Host abgeschlossen ist. Mit der Option -i oder --inline.
  • Sie können festlegen, dass Verbindungen nach der angegebenen Anzahl von Sekunden ablaufen, indem Sie die Option -t number_of_seconds einschließen.
  • Um die Standardausgabe in einem bestimmten Verzeichnis zu speichern, können Sie die Option -o /directory/path verwenden.
  • 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.

Verwandte Artikel: