Skript aus der Ferne unter Unix ausführen, Ausgabe lokal holen?
104795
Cristi Diaconescu
Ich muss ein Skript (Tcl oder was auch immer) auf einer Remote-Unix-Maschine von einer (lokalen) Windows-Befehls-Shell ausführen, und ich möchte, dass der Befehl stdout / stderr in der Windows-CLI angezeigt wird. Der Exit-Code wäre auch nützlich.
Ist das mit ssh (putty) möglich? Oder mit anderen Mitteln?
Ist es möglich, dies mit putty.exe zu tun? Das heißt, sie arbeiten als "normales" CLI-Programm, im Gegensatz zu dem Standard, bei dem ein Terminal emuliert wird.
Cristi Diaconescu vor 14 Jahren
0
Ich habe in ein Windows 2003-System eingebettet und die Befehlszeile ausgeführt, ja. Der Host hatte die HP-Version des SSH-Servers installiert, um die Systemverwaltungstools zu unterstützen. Wenn Sie nur einen SSH-Client haben, läuft alles auf dem Remote-System.
kmarsh vor 14 Jahren
0
Dies funktioniert auch für einen lokalen Computer, der nicht Windows ist.
shiri vor 7 Jahren
1
Außer dem Backslash-Pfad, ja.
kmarsh vor 7 Jahren
0
20
Cristi Diaconescu
Was ich gesucht habe, ist putty's side-kick, plink.exe . Im Gegensatz zu putty, der wie ein Terminalemulator plinkwirkt, verhält es sich wie ein normales (nicht interaktives) CLI-Programm.
Mit dieser Option könnte ich dies tun cmd.exeund die Remote-Befehlsausgabe lokal speichern.
\> plink remote_host "ls -l" > log.txt
Das Beste von allem, das funktioniert sowohl für ssh als auch für telnet !
Nur zu Referenzzwecken sind dies die verfügbaren Optionen:
PuTTY Link: command-line connection utility Release 0.59 Usage: plink [options] [user@]host [command] ("host" can also be a PuTTY saved session name) Options: -V print version information and exit -pgpfp print PGP key fingerprints and exit -v show verbose messages -load sessname Load settings from saved session -ssh -telnet -rlogin -raw force use of a particular protocol -P port connect to specified port -l user connect with specified username -batch disable all interactive prompts The following options only apply to SSH connections: -pw passw login with specified password -D [listen-IP:]listen-port Dynamic SOCKS-based port forwarding -L [listen-IP:]listen-port:host:port Forward local port to remote address -R [listen-IP:]listen-port:host:port Forward remote port to local address -X -x enable / disable X11 forwarding -A -a enable / disable agent forwarding -t -T enable / disable pty allocation -1 -2 force use of particular protocol version -4 -6 force use of IPv4 or IPv6 -C enable compression -i key private key file for authentication -noagent disable use of Pageant -agent enable use of Pageant -m file read remote command(s) from file -s remote command is an SSH subsystem (SSH-2 only) -N don't start a shell/command (SSH-2 only) -nc host:port open tunnel in place of session (SSH-2 only)
3
Mark
Yes if you use the putty ssh client you will see any command line output your script will produce. To get the exit code after the script runs type:
echo $?
1
James
Eine andere Möglichkeit, um die Protokolldatei auf Ihrem Windows-Computer zu erhalten, ist: - M / C von Windows m / c auf einem Unix-System installieren (abhängig von UNIX kann dies mithilfe des Samba-Servers möglich sein) - Führen Sie das Skript unter Windows mit einem beliebigen Remote-Client aus - Skriptprotokoll in das eingehängte Verzeichnis
Sie können die Ausgabe live sehen, wenn Sie ein UNIX-Äquivalent von tail für Windows erhalten .
0
manjesh23
Noch eine Antwort:
Speichern Sie alle Linux-Befehle in der Datei cmdlist.txt und verwenden Sie den folgenden Befehl.
Nachdem dieser Befehl ausgeführt wurde, werden alle cmdlist.txt-Befehle auf dem Remote-Gerät ausgeführt und die Ausgabe wird in der Datei output.txt gespeichert
Stellen Sie sicher, dass sich plink.exe und cmdlist.txt im selben Verzeichnis befinden, und Sie zeigen, dass Ihre DOS-Eingabeaufforderung auf dasselbe Verzeichnis verweist.