Website-Suche

Pscp – Übertragen/Kopieren von Dateien auf mehrere Linux-Server mit einer einzigen Shell


Mit dem Dienstprogramm Pscp können Sie Dateien über ein einziges Terminal mit einem einzigen Befehl auf mehrere Remote-Linux-Server übertragen/kopieren. Dieses Tool ist Teil von Pssh (Parallel SSH Tools). bietet parallele Versionen von OpenSSH und anderen ähnlichen Tools wie:

  1. pscp – ist ein Dienstprogramm zum parallelen Kopieren von Dateien auf mehrere Hosts.
  2. prsync – ist ein Dienstprogramm zum effizienten parallelen Kopieren von Dateien auf mehrere Hosts.
  3. pnuke – es hilft, Prozesse auf mehreren Remote-Hosts parallel zu beenden.
  4. pslurp – es hilft, Dateien von mehreren Remote-Hosts parallel auf einen zentralen Host zu kopieren.

Wenn Sie in einer Netzwerkumgebung arbeiten, in der es mehrere Hosts im Netzwerk gibt, kann ein Systemadministrator die oben aufgeführten Tools sehr nützlich finden.

In diesem Artikel werden wir uns einige nützliche Beispiele des Dienstprogramms Pscp zum Übertragen/Kopieren von Dateien auf mehrere Linux-Hosts in einem Netzwerk ansehen.

Um das pscp-Tool verwenden zu können, müssen Sie das PSSH-Dienstprogramm auf Ihrem Linux-System installieren. Zur Installation von PSSH können Sie diesen Artikel lesen.

  1. So installieren Sie das Pssh-Tool, um Befehle auf mehreren Linux-Servern auszuführen

Fast alle mit diesen Tools verwendeten Optionen sind gleich, mit Ausnahme einiger weniger, die sich auf die spezifische Funktionalität eines bestimmten Dienstprogramms beziehen.

So verwenden Sie Pscp zum Übertragen/Kopieren von Dateien auf mehrere Linux-Server

Bei der Verwendung von pscp müssen Sie eine separate Datei erstellen, die die Nummer der Linux-Server-IP-Adresse und die SSH-Portnummer enthält, die Sie für die Verbindung mit dem Server benötigen.

Kopieren Sie Dateien auf mehrere Linux-Server

Erstellen wir eine neue Datei mit dem Namen „myscphosts.txt“ und fügen wir wie gezeigt die Liste der IP-Adressen und SSH-Portnummern des Linux-Hosts (Standard 22) hinzu.

192.168.0.3:22
192.168.0.9:22

Sobald Sie der Datei Hosts hinzugefügt haben, ist es an der Zeit, mithilfe des folgenden Befehls Dateien vom lokalen Computer auf mehrere Linux-Hosts im Verzeichnis /tmp zu kopieren.

pscp -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
OR
pscp.pssh -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
Beispielausgabe
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

Erläuterung der im obigen Befehl verwendeten Optionen.

  1. -h-Schalter, der zum Lesen eines Hosts aus einer bestimmten Datei und einem bestimmten Speicherort verwendet wird.
  2. Der Schalter -l liest einen Standardbenutzernamen auf allen Hosts, die keinen bestimmten Benutzer definieren.
  3. Der Schalter -A weist pscp an, nach einem Passwort zu fragen und es an ssh zu senden.
  4. Der Schalter -v wird verwendet, um pscp im ausführlichen Modus auszuführen.

Kopieren Sie Verzeichnisse auf mehrere Linux-Server

Wenn Sie das gesamte Verzeichnis kopieren möchten, verwenden Sie die Option -r, die wie gezeigt ganze Verzeichnisse rekursiv kopiert.

pscp -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
OR
pscp.pssh -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
Beispielausgabe
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

Sie können die manuelle Eingabeseite für pscp anzeigen oder den Befehl pscp --help verwenden, um Hilfe zu suchen.

Abschluss

Es lohnt sich, dieses Tool auszuprobieren, als ob Sie mehrere Linux-Systeme steuern und bereits über ein SSH-Schlüssel-basiertes, passwortloses Login-Setup verfügen.