Ich suche ein Skript im Batch, das Remote-SSH-Befehle unter Linux ausführen muss. Ich möchte, dass die Ausgabe zurückgegeben wird, sodass ich sie entweder auf dem Bildschirm anzeigen oder protokollieren kann.
Ich habe PuTTY.exe -ssh [email protected] -pw password -m command_run
versucht, aber es wird nichts auf meinem Bildschirm angezeigt.
Hat das schon mal jemand gemacht?
Der -m
-Schalter von PuTTY verwendet einen -Pfad zu einer Skriptdatei als Argument, nicht als command.
Referenz: https://the.earth.li/~sgtatham/PuTTY/latest/htmldoc/Chapter3.html#using-cmdline-m
Sie müssen also Ihren Befehl (command_run
) in einer Textdatei (z. B. c:\path\command.txt
) speichern und an PuTTY übergeben:
PuTTY.exe -ssh [email protected] -pw password -m c:\path\command.txt
Beachten Sie jedoch, dass Sie Plink (ein Befehlszeilen-Verbindungstool aus der PuTTY-Suite) verwenden sollten. Da es sich um eine Konsolenanwendung handelt, können Sie die Ausgabe in eine Datei umleiten (was Sie mit PuTTY nicht tun können).
Eine Befehlszeilensyntax ist identisch, eine Umleitung für die Ausgabe wurde hinzugefügt:
plink.exe -ssh [email protected] -pw password -m c:\path\command.txt > output.txt
Siehe Verwenden des Befehlszeilen-Verbindungstools Plink .
Und mit Plink können Sie den Befehl tatsächlich direkt in der Befehlszeile eingeben:
plink.exe -ssh [email protected] -pw password command > output.txt
Ähnliche Fragen:
Automatisieren des Befehls unter Linux unter Windows mit PuTTY
Befehl in Plink aus einer Batchdatei ausführen
Sie können auch Bash on Ubuntu on Windows
direkt verwenden. Z.B.,
bash -c "ssh -t [email protected] 'cd /; Sudo my-command'"
Per Martin Prikryls Kommentar unten:
Das -t ermöglicht die Terminalemulation. Ob Sie die Terminalemulation für Sudo benötigen, hängt von der Konfiguration ab (und Sie benötigen sie standardmäßig nicht, während viele Distributionen die Standardeinstellung überschreiben). Im Gegensatz dazu benötigen viele andere Befehle eine Terminalemulation.
Als Alternative können Sie OpenSSH http://www.mls-software.com/opensshd.html installieren und dann einfach ssh [email protected] -pw password -m command_run
Bearbeiten: Wählen Sie nach der Antwort von user2687375 bei der Installation nur Client aus. Sobald dies erledigt ist, sollten Sie SSH vom Befehl aus initiieren können.
Dann können Sie ein SSH-Batch-Skript wie erstellen
ECHO OFF
CLS
:MENU
ECHO.
ECHO ........................
ECHO SSH servers
ECHO ........................
ECHO.
ECHO 1 - Web Server 1
ECHO 2 - Web Server 2
ECHO E - EXIT
ECHO.
SET /P M=Type 1 - 2 then press ENTER:
IF %M%==1 GOTO WEB1
IF %M%==2 GOTO WEB2
IF %M%==E GOTO EOF
REM ------------------------------
REM SSH Server details
REM ------------------------------
:WEB1
CLS
call ssh [email protected]
cmd /k
:WEB2
CLS
call ssh [email protected]
cmd /k