我需要从(本地)Windows命令外壳程序在远程Unix机器上运行(Tcl或任何其他语言)脚本,并且希望脚本的stdout / stderr显示在Windows CLI中。退出代码也将很有用。
可以使用ssh(putty)吗?还是通过其他方式?
谢谢!
我需要从(本地)Windows命令外壳程序在远程Unix机器上运行(Tcl或任何其他语言)脚本,并且希望脚本的stdout / stderr显示在Windows CLI中。退出代码也将很有用。
可以使用ssh(putty)吗?还是通过其他方式?
谢谢!
Answers:
这是SSH的默认设置。如果要远程重定向输出,请在命令引号内放置重定向符号(通常为“>”)。
例如:
ssh remote_host "ls > /tmp/file_on_remote_host.txt"
为了在Windows主机上本地保存输出,
ssh remote_host "ls" > .\file_on_local_host.txt
要远程组合stderr并在本地保存它和stdout,
ssh remote_host "ls 2>&1" > .\combined_output_on_local_host.txt
我要寻找的是腻子的辅助功能plink.exe。与腻子不同,腻子的作用类似于终端仿真器,plink
而普通的(非交互式)CLI程序则起作用。
使用它,我可以执行此操作,cmd.exe
并将远程命令输出保存在本地。
\> plink remote_host "ls -l" > log.txt
最棒的是,这对ssh和telnet都适用!
仅供参考,以下是可用的选项:
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)