如何在命令提示符下使用自动登录在PuTTY中运行命令文件?


17

我使用以下命令自动登录到远程服务器,然后运行a中列出的命令commands.txt,如下所示:

C:\path\to\putty.exe -load "[Sessionname]" -l [user] -pw [password] -m C:\path\to\commands.txt

commands.txt 包含以下内容:

ps -elf|grep 'sometext'

但是,当我尝试这样做时,会出现一个PuTTY的新窗口,但它会在登录后立即关闭并退出。结果,我看不到命令​​的输出。

我不明白这里发生了什么。我的方法是错的还是我需要采取更多步骤让PuTTY窗口在退出之前暂停一段时间?


2
考虑使用Plink.exe(通常与Putty捆绑在一起,记得包含在PATH中)。我花了2个小时来搜索如何在PuTTY的命令行中指定rsa密钥,因为它对硬编码密码不安全。我忽略了Plink解决方案因为,我认为这个电话必须从腻子开始。查看下面提到Plink的答案。例如`Plink.exe -ssh host -l user -ic:\ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

Answers:


11

您应该使用plink.exe(PuTTY后端的命令行界面)而不是putty.exe

你可以从PuTTY下载页面获得

没有plink:

似乎唯一的方法是使用-log <logfile>选项,然后打印其内容并删除它。


我不能使用plink或其他命令行界面。有没有其他方法可以做到这一点

2
@supportpb“我不能使用plink” - 为什么?如果你尝试会怎么样?
gertvdijk

1
@gertvdijk发生的事情是,他因在企业机器上使用未经批准的软件而被解雇...
Torben Gundtofte-Bruun 2017年

不支持的选项:-log
Allan Bowe

9

首先,您需要创建一个单独的文件,其中包含您要执行的所有命令。

示例:我想使用PuTTY在我的域上下载并安装Drupal。要做到这一点,你必须:

首先创建一个.txt文件。在该文件中是命令。我的是:“ drush dl drupal ”下一行,“ drush si --account-name = [account name] --account-pass = [account pass] --db-url = mysql:// [user]:[pass ] @ localhost / [数据库名称] --y

保存该文件后,您现在要创建一个BAT文件或在CMD提示符下键入它:

  • ssh.cmd
  • @echo [为了你看看发生了什么]
  • [导航到您的PuTTY安装。我的是:] cd C:\ Program Files \ Putty
  • 开始 putty.exe -ssh [domain name] -l [username] -pw [password] -m [the directory of the .txt file you created which contains the codes you want to be executed]

-m选项对我不起作用。它发出一个错误,说不能打开命令文件<我的文本文件的路径>
user590849 2015年

@ user590849命令文本文件的路径是否有空格?因为我只是
Black Frog 2016年

2

你的方法似乎很好,但是,行为中有一个默认设置会导致你在这里遇到麻烦,并可能让你相信一切都没有发生。

但是,当我尝试这样做时,会出现PuTTY的新窗口,但在登录后立即关闭并退出

您的会话在执行命令后立即结束,PuTTY默认关闭窗口。有关如何更改会话的此行为,请参阅PuTTY文档

4.1.3 `Close Window on Exit'

   Finally in the Session panel, there is an option labelled `Close
   Window on Exit'. This controls whether the PuTTY terminal window
   disappears as soon as the session inside it terminates.

有趣,但这也将影响手动会议......
Aviram Segal

1
@AviramSegal这是一个会话设置。只需复制会话配置,session-noclose然后在脚本中使用该配置。
gertvdijk

1
哦会话设置,然后是的,这将工作
Aviram Segal

0

如果您只想创建批处理文件以打开Unix机器,那就不会有问题。以下是示例:

"PuTTY path" -ssh machinename -l username -pw password

PuTTY路径应该是双引号,例如“C:\ Program Files \ putty \ putty.ext”

machinename =没有双引号的machinename

密码=带引号


0

除了Aviram的答案:

下面是如何从命令提示符运行PuTTY命令的示例:

  • 首先转到PuTTY安装目录,C:\Program Files\PuTTY然后执行以下命令:

    plink.exe -ssh server_ip -P port_no -l user_name -pw password

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.