Linux 腻子作为cmd和sh之间的接口

Linux 腻子作为cmd和sh之间的接口,linux,windows,bash,ssh,cmd,Linux,Windows,Bash,Ssh,Cmd,我有什么: 本地Windows计算机和删除Linux服务器 本地计算机上的cmd脚本和sh脚本 在远程计算机上不保留脚本的特定限制 我需要什么: 用于启动具有指定参数的SSH客户端的本地cmd脚本(ip:port,username@password),该客户端在远程计算机上执行本地sh脚本,并将输出传递回本地计算机、cmd脚本的STDOUT 例如: whatever.cmd: @echo off client.exe -ip 192.168.1.1 -port 22 -username

我有什么:

  • 本地Windows计算机和删除Linux服务器
  • 本地计算机上的cmd脚本和sh脚本
  • 在远程计算机上不保留脚本的特定限制
我需要什么:

  • 用于启动具有指定参数的SSH客户端的本地cmd脚本(ip:port,username@password),该客户端在远程计算机上执行本地sh脚本,并将输出传递回本地计算机、cmd脚本的STDOUT
例如:

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来完成这项工作呢?

也许
plink
适合你。它类似于putty,但您可以使用管道进行输入和输出,而不是键盘和屏幕作为输入和输出

通过这种方式,您可以将脚本的行回显到服务器

Plink可在putty网站下载:


该站点上还有一本内容广泛且详细的手册。

如果不先将脚本移动到服务器上,就无法执行脚本。您可以使用sftp(如果在服务器上启用,但最有可能的情况是ssh仍在运行)上载该脚本,并在运行后让脚本删除自身。所以现在唯一剩下的就是实际运行它;而不是符号(比如-command'head
ps-aux
;df-h | grep media')?不,服务器上禁用了sftp。如果您可以传递一个命令在服务器上运行,您应该能够传递倍数,以;,用引号括起来。是的。我如何在不使用GUI的情况下使用Putty来实现这一点?Unix ssh有-t命令行选项,但我认为Putty上没有这个选项。+1。具体来说,cmd.exe命令应该是
类型scriptfile.bash | plink-pw passworduser@hostbash-s
。脚本文件不得包含DOS样式的eol。