【问题标题】:Putty as an interface between cmd and shPutty 作为 cmd 和 sh 之间的接口
【发布时间】: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


【解决方案1】:

也许plink 适合你。它类似于putty,但您可以使用管道来代替键盘和屏幕作为输入和输出。

这样您可以将脚本的行回显到服务器。

Plink 可在 putty 网站下载:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

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

【讨论】:

  • +1。具体来说,cmd.exe 命令将是type scriptfile.bash | plink -pw password user@host bash -s。脚本文件不能包含 DOS 风格的 eol。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
  • 2022-06-28
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2014-06-07
相关资源
最近更新 更多