Website-Suche

PSSH – Befehle auf mehreren Remote-Linux-Systemen ausführen


Zweifellos ist OpenSSH eines der am weitesten verbreiteten und leistungsfähigsten Tools für Linux, mit dem Sie über eine Shell eine sichere Verbindung zu Remote-Linux-Systemen herstellen und Dateien sicher von und zu Remote-Systemen übertragen können.

Der größte Nachteil von OpenSSH besteht jedoch darin, dass Sie nicht den gleichen Befehl auf mehreren Hosts gleichzeitig ausführen können und OpenSSH nicht für die Durchführung solcher Aufgaben entwickelt wurde.

Hier bietet sich das Parallel SSH- oder PSSH-Tool an, eine Python-basierte Anwendung, mit der Sie Befehle auf mehreren Hosts parallel gleichzeitig ausführen können.

Das PSSH-Tool umfasst parallele Versionen von OpenSSH und verwandte 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 mehrere Hosts.
  • prsync – ist ein Programm zum effizienten parallelen Kopieren von Dateien auf mehrere Hosts.
  • pnuke – beendet Prozesse auf mehreren Remote-Hosts gleichzeitig.
  • pslurp – kopiert Dateien von mehreren Remote-Hosts parallel auf einen zentralen Host.

Diese Tools eignen sich gut für Systemadministratoren, die mit großen Knotensammlungen in einem Netzwerk arbeiten.

Installieren Sie PSSH oder Parallel SSH unter Linux

In diesem Handbuch werden wir uns die Schritte zur Installation der neuesten Version des PSSH-Programms (d. h. Version 2.3.1) auf RHEL-basierten Distributionen wie Fedora, CentOS Stream ansehen , Rocky & AlmaLinux und Debian-basierte Distributionen wie Ubuntu und Linux Mint mit dem Befehl pip.

Der Befehl pip ist ein kleines Programm (Ersatz des Skripts easy_install) zum Installieren und Verwalten des Python-Softwarepaketindex.

Auf RHEL-basierten Distributionen

Auf RHEL-Distributionen müssen Sie zuerst das pip-Paket (d. h. python-pip) auf Ihrem System installieren, um das PSSH zu installieren mit yum oder dnf programmieren.

yum install python-pip
OR
dnf install python-pip

Sobald Sie das pip-Tool installiert haben, können Sie das pssh-Paket mit dem Befehl pip installieren, wie unten gezeigt.

pip install pssh  

Über Debian-basierte Distributionen

Bei Debian-basierten Distributionen dauert die Installation von pssh mit dem Befehl pip eine Minute.

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 sowie der IP-Adresse und Portnummer erstellen, die Sie benötigen, um über pssh eine Verbindung zu Remote-Systemen herzustellen.

Die Zeilen in der Hostdatei haben das folgende Format 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 jeden einzelnen Befehl auf verschiedenen oder mehreren Linux-Hosts in einem Netzwerk ausführen, indem Sie einen pssh-Befehl ausführen. Es gibt viele Optionen zur Verwendung mit pssh, wie unten beschrieben:

Wir werden uns einige Möglichkeiten ansehen, Befehle auf mehreren Hosts mit pssh mit unterschiedlichen Optionen auszuführen.

  • Um die Hostdatei zu lesen, schließen Sie die Option -h host_file-name oder --hosts host_file_name ein.
  • Um einen Standardbenutzernamen auf allen Hosts einzuschließen, die keinen bestimmten Benutzer definieren, verwenden Sie die Option -l Benutzername oder --user Benutzername.
  • Sie können beim Abschluss jedes Hosts auch die Standardausgabe und den Standardfehler anzeigen. Durch Verwendung der Option -i oder --inline.
  • Möglicherweise möchten Sie Verbindungen nach der angegebenen Anzahl von Sekunden abbrechen lassen, 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 einige Beispiele und die Verwendung von pssh-Befehlen an:

Führen Sie Befehle auf mehreren Linux-Hosts aus

1. Um echo „Hello TecMint“ auf dem Terminal mehrerer Linux-Hosts durch den Root-Benutzer auszuführen und zur Eingabe des Passworts des Root-Benutzers aufzufordern, führen Sie den folgenden Befehl aus.

Wichtig: Denken Sie daran, dass alle Hosts in der Hostdatei 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 ist „pssh-hosts“ eine Datei mit der Liste der IP-Adresse und SSH-Portnummer des Remote-Linux-Servers dass Sie Befehle ausführen möchten.

Finden Sie die Festplattennutzung mehrerer Linux-Hosts

2. Um die Speicherplatznutzung auf mehreren Linux-Servern in Ihrem Netzwerk herauszufinden, können Sie einen einzelnen 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 und mehr Möglichkeiten zur Verwendung von pssh herauszufinden.

pssh --help

Zusammenfassung

Parallel SSH oder PSSH ist ein gutes Werkzeug zum Ausführen von Befehlen in einer Umgebung, in der ein Systemadministrator mit vielen Servern in einem Netzwerk arbeiten muss . Dadurch können Befehle problemlos remote auf verschiedenen Hosts in einem Netzwerk ausgeführt werden.

Ich hoffe, dass Sie dieses Handbuch nützlich finden und falls Sie weitere Informationen zu pssh oder Fehler bei der Installation oder Verwendung haben, können Sie gerne einen Kommentar hinterlassen.