Es gibt mehrere Möglichkeiten, die Befehle oder das Skript auf mehreren Remote-Linux-Computern auszuführen. Ein einfacher und einfacher Weg ist über pssh (paralleles SSH-Programm).
Pssh : ist ein Programm zum parallelen Ausführen von SSH auf einer Reihe von Hosts. Es bietet Funktionen wie das Senden von Eingaben an alle Prozesse, das Übergeben eines Kennworts an ssh, das Speichern der Ausgabe in Dateien und das Zeitlimit.
Beispiel & Verwendung:
Stellen Sie eine Verbindung zu Host1 und Host2 her und drucken Sie "Hallo, Welt" von jedem:
pssh -i -H "host1 host2" echo "hello, world"
Führen Sie Befehle über ein Skript auf mehreren Servern aus:
pssh -h hosts.txt -P -I<./commands.sh
Verwenden und Ausführen eines Befehls ohne Überprüfen oder Speichern von Hostschlüsseln:
pssh -h hostname_ip.txt -x '-q -o StrictHostKeyChecking=no -o PreferredAuthentications=publickey -o PubkeyAuthentication=yes' -i 'uptime; hostname -f'
Wenn die Datei hosts.txt eine große Anzahl von Einträgen enthält, z. B. 100, kann die Parallelitätsoption auch auf 100 gesetzt werden, um sicherzustellen, dass die Befehle gleichzeitig ausgeführt werden:
pssh -i -h hosts.txt -p 100 -t 0 sleep 10000
Optionen :
-I: Eingabe lesen und an jeden SSH-Prozess senden.
-P: Weist pssh an, die Ausgabe beim Eintreffen anzuzeigen.
-h: Liest die Datei des Hosts.
-H: [user @] host [: port] für Single-Host.
-i: Standardausgabe und Standardfehler anzeigen, wenn jeder Host abgeschlossen ist
-x Argumente : Übergibt zusätzliche SSH-Befehlszeilenargumente
-o Option: Kann verwendet werden, um Optionen in dem in der Konfigurationsdatei verwendeten Format anzugeben. (/ etc / ssh / ssh_config ) (~ / .ssh / config)
-p Parallelität: Verwenden Sie die angegebene Anzahl als maximale Anzahl gleichzeitiger Verbindungen.
-q Leiser Modus: Bewirkt, dass die meisten Warn- und Diagnosemeldungen unterdrückt werden.
-t: Zeitüberschreitung bei Verbindungen nach der angegebenen Anzahl von Sekunden. 0 bedeutet, dass pssh keine Zeitüberschreitung für Verbindungen verursacht
Wie geht man vor, wenn man zur Remote-Computer-Authentifizierung auffordert?
Deaktivieren Sie StrictHostKeyChecking, um die RSA-Authentifizierungsaufforderung zu verarbeiten.
-o StrictHostKeyChecking = no
Quelle : man pssh