使用 PuTTY 自动执行 command/script

Automating command/script execution using PuTTY

这些是我需要做的事情:

  1. 打开putty.exe
  2. 输入用户名和密码。
  3. 运行 一个 shell 脚本。

我正在使用 UFT(VB 脚本)。我可以打开 PuTTY,但无法输入用户名和密码或 运行 使用 UFT 的任何命令。

还有其他方法可以实现吗?我搜索了一下,发现我们可以使用Plink。那么问题就是整个团队都必须为此目的安装 Plink。那是不可能的。

提前致谢。

您可以在直接启动 putty 时添加 cmd 参数;

start C:\Users\putty.exe -load "server" -l userID -pw Password -m commands.txt

你能不请求用户名并事先传递并将其传递给可执行文件吗?

PuTTY 具有 -m switch,您可以使用它来提供文件路径以及要执行的命令列表:

putty.exe user@example.com -m c:\local\path\commands.txt

在您的情况下,commands.txt 将包含您的 shell 脚本的路径,例如:

/home/user/myscript.sh

虽然对于自动化,您最好使用 Plink command-line connection tool,而不是 GUI PuTTY 应用程序,正如您已经发现的那样。 Plink 是 PuTTY 包的一部分,所以每个拥有 PuTTY 的人也应该拥有 Plink。

Plink (plink.exe) 具有与 PuTTY 相同的命令行参数。除此之外,您还可以直接在其命令上指定您的命令,例如:

plink.exe user@example.com /home/user/myscript.sh

或使用其标准输入

plink.exe user@example.com < c:\local\path\command.txt

(当然,你会使用你的语言的重定向机制,而不是<)。


请注意,使用 -m 开关或直接在命令行上提供命令意味着非交互模式,而使用标准输入默认使用交互模式。因此结果或行为可能会有所不同。使用-t and -T switches分别强制交互和非交互模式。

到 运行 单个远程命令或短系列命令通过使用 plink -batch 标志而不需要脚本文件会更容易。例如要显示 OS 名称和目录列表,请执行以下操作:

plink user@host -pw password -batch uname;ls