Erfahren Sie, wie Sie denselben/sich wiederholenden Befehl auf mehreren Linux-Servern von der Windows-Maschine ausführen. Dieser Trick verwendet das Befehlszeilen-Putty-Dienstprogramm „plink“.
Eines der Hauptanliegen von Systemadministratoren ist es, denselben/sich wiederholenden Befehl auf mehreren Linux-Servern in Infra auszuführen, wenn kein zentralisiertes Tool verfügbar ist. In diesem Beitrag werden wir sehen, wie man einen Befehl auf mehreren Linux-Servern auf einmal ausführt. Sie müssen Ihr Kontopasswort nirgendwo speichern und müssen nicht einmal expect
haben Funktion in Ihrer Quellmaschine!
Voraussetzung
- Windows-Rechner mit darauf heruntergeladenem plink (hier plink herunterladen)
- Linux-Server sollten von einem Windows-Rechner aus erreichbar sein
So geht's
plink ist ein Putty-Befehlszeilendienstprogramm. Mit plink können wir eine Verbindung zum Server herstellen, indem wir IP, Benutzername und Passwort in der Befehlszeile eingeben. plink kann von einer Eingabeaufforderung unter Windows aufgerufen werden.
C:\Users\noname\Desktop>plink -ssh [email protected] -pw password@123 (hostname; date) testserver Tue Nov 1 12:54:33 IST 2016 C:\Users\noname\Desktop>
Wechseln Sie zur Windows-Eingabeaufforderung, indem Sie cmd
eingeben in einem Ausführungsfenster (Windows-Taste + r). Navigieren Sie zu dem Ordner, in dem die ausführbare plink-Datei gespeichert ist, und geben Sie dann den plink-Befehl wie oben ein.
- ssh:Protokoll zum Verbinden
- id@Server-IP
- pw:Kontokennwort
- Auf dem Linux-Server auszuführende Befehle in geschweiften Klammern.
So funktioniert plink. Um nun den gleichen Befehl auf mehreren Servern auszuführen, sehen wir das folgende Beispiel. Wir werden uns mit 3 Servern verbinden und den Befehl hostname &date ausführen.
Geben Sie zuerst die IP-Adressen aller 3 Server in einer einzigen Datei ip_list.txt
ein . Führen Sie dann eine einfache for-Schleife für diese Datei wie unten in der Eingabeaufforderung aus. Dies ist ein sehr einfaches Batch-Skript.
C:\Users\noname\Desktop>FOR /F "tokens=1,2* delims=," %G IN (C:\Users\noname\Desktop\ip_list.txt) DO plink -ssh user1@%G -pw password@123 (hostname; date) testserver Tue Nov 1 12:54:33 IST 2016 testserver1 Tue Nov 1 12:54:36 IST 2016 testserver2 Tue Nov 1 12:54:39 IST 2016 C:\Users\noname\Desktop>
Voila! Alle Befehlsausgaben des Servers sind da! Befehle, die auf allen Servern gleichzeitig ausgeführt werden.
Dies ist sehr nützlich, wenn Sie einige einzeilige Ausgaben von allen Servern überprüfen müssen oder wenn Sie Kontoaktualisierungsbefehle auf allen Servern auf einmal ausführen möchten.