【发布时间】:2013-11-30 09:34:11
【问题描述】:
我有什么:
- 本地 Windows 计算机和删除 Linux 服务器
- 本地机器上的一个 cmd 脚本和一个 sh 脚本
- 在远程计算机上不保留脚本的特定限制
我需要什么:
- 本地 cmd 脚本使用指定参数(ip:port、username@password)启动 SSH 客户端,该客户端在远程计算机上执行本地 sh 脚本并将输出传递回本地计算机,传递给 cmd脚本的标准输出
例子:
whatever.cmd:
@echo off
client.exe -ip 192.168.1.1 -port 22 -username notroot -password mypwd -exec remote.sh >192.168.1.1_media.txt
或者,如果我将 sh 脚本转换为一组由 ; 分隔的命令符号,示例可能如下所示:
@echo off
client.exe -ip 192.168.1.1 -port 22 -username notroot -password mypwd -command 'head `ps -aux`;df -h | grep media' >192.168.1.1_media.txt
有没有可以这样运行的SSH客户端?如果没有,我怎样才能让 Putty 在不使用 GUI 的情况下完成这项工作?
【问题讨论】:
-
如果不先将脚本移动到服务器,就无法执行脚本。您可以使用 sftp(如果在服务器上启用,但很可能是 ssh 无论如何都在运行)上传该脚本,并在运行后让脚本自行删除。所以现在唯一剩下的就是实际运行它。
-
我可以通过是作为一组命令除以;符号,然后(如 -command 'head
ps -aux;df -h | grep media')?不,服务器上禁用了 sftp。 -
如果你可以传递一个命令在服务器上运行,你应该可以传递多个,用;分隔,用引号括起来。是的。
-
如何在不使用 GUI 的情况下使用 Putty 执行此操作?
-
Unix ssh 有 -t 命令行选项,但我认为 putty 上没有。
标签: linux windows bash ssh cmd