GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beste Möglichkeit, Remote-SSH-Befehle in Batch zu skripten (Windows)

Sie können auch Bash on Ubuntu on Windows verwenden direkt. Beispiel:

bash -c "ssh -t [email protected] 'cd /; sudo my-command'"

Per Martin Prikryls Kommentar unten:

Das -t aktiviert die Terminalemulation. Ob Sie die Terminalemulation für sudo benötigen, hängt von der Konfiguration ab (und standardmäßig brauchen Sie sie nicht, während viele Distributionen die Standardeinstellung überschreiben). Im Gegensatz dazu benötigen viele andere Befehle eine Terminalemulation.


Alternativ 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 einer Antwort von user2687375 bei der Installation nur Client aus. Sobald dies erledigt ist, sollten Sie in der Lage sein, SSH über den Befehl zu initiieren.

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

Die -m Schalter von PuTTY nimmt einen Pfad zu einer Skriptdatei als Argument, nicht als Befehl .

Referenz:https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html#using-cmdline-m

Sie müssen also Ihren Befehl speichern (command_run ) in eine einfache Textdatei (z. B. c:\path\command.txt ) und übergeben Sie das an PuTTY:

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. Es ist eine Konsolenanwendung, also können Sie ihre Ausgabe in eine Datei umleiten (was Sie mit PuTTY nicht tun können).

Eine Befehlszeilensyntax ist identisch, eine Ausgabeumleitung 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 angeben:

plink.exe -ssh [email protected] -pw password command > output.txt

Ähnliche Fragen:
Automatisieren des ausgeführten Befehls unter Linux von Windows mit PuTTY
Befehl in Plink aus einer Batch-Datei ausführen


Linux
  1. Die 6 besten kostenlosen Putty-Alternativen für SSH-Clients unter Windows

  2. Unerwartetes Verhalten eines Shell-Skripts?

  3. Der beste Weg, um sicherzustellen, dass ein Skript einmal pro Periode ausgeführt wird?

  4. Die beste Art, Ubuntu auf dem Computer zu testen?

  5. Schreiben Sie ein Shell-Skript, um ssh zu einem Remote-Computer zu senden und Befehle auszuführen

Ausführen von Befehlen auf Remote-Linux-Systemen über SSH

Ein Windows-Typ in einer Linux-Welt:VS-Code und Remote-SSH

10 PuTTY PLINK-Beispiele zur Automatisierung von Remote-Linux-Befehlen aus Windows-Stapeldateien

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server unter Linux oder Windows herzustellen

Wie mounte ich einen Remote-Linux-Ordner in Windows über SSH?

Was ist der schnellste Weg, um ein Skript auszuführen?