2017-07-13 27 views
-1

什么我想在这里实现:通过脚本终止SSH呼叫而不在Windows环境中的任何人工干预

我要自动启动通过腻子远程SSH会话的日常过程中,调用一些命令采取它的响应到一个txt文件并通过脚本终止这个SSH会话。

现在按照由渔业部的建议,我有这个东西的工作是这样的:

plink remote_host_name -m "dir\with\Inputcommands.txt" -l username -pw password >> "dir\with\OutputResponse.txt" 

其实,这工作好,但我想,一旦OutputResponse保存它能够自我终止本次会议。

有关如何通过相同脚本终止此操作的任何建议/无需在Windows 7环境中手动干预?

+0

“exit”命令导致终止telnet/SSH会话。因此,添加到文件'Inputcommands.txt'作为最后一行与'exit'一词并且SSH会话应自动终止。 – Mofi

+0

这工作提示结束,但是没有保存在** OutputResponse.txt ** - 所以我没有得到那里的输出。可能是因为我们在输出保存在txt文件之前退出。 我尝试在BAT文件中退出 - 但它不起作用 – harveySp

回答

0

我下载putty.zipDownload PuTTY: latest release (0.70)腻子及其附加工具,64位版本和提取的ZIP文件到临时目录C:\Temp\PuTTY

接下来,我双击C:\Temp\PuTTY\PUTTY.CHM打开此帮助文件,其中包含完整的PuTTY用户手册

在显示的内容页面上,我首先单击了列表项2.5注销并阅读如何注销会话。我读了服务器自己的注销命令应该使用哪些可能会有所不同服务器和注销退出应该尝试,如果不知道它。

我按了一下按钮返回并点击3.8腻子命令行下一个内容页面上。在此帮助页面上,我首先点击3.8.1从命令行开始会话。我打开了一个命令提示符窗口,使用cd /D C:\Temp\PuTTY将当前目录设置为目录PuTTY并开始根据此帮助页面上的信息编写命令行。

plink -ssh [email protected] 

我按钮返回在帮助和下一列表项3.8.3.4 -l再次点击:指定一个登录名。阅读后,我知道这是另一种方法来指定主机(名称或IP地址)的用户名/登录名,我不需要这些命令行已经键入,但尚未执行。所以在命令提示符窗口的命令行中没有任何改变。

我再次点击按钮返回和下一列表项3.8.3.6 -m:从文件中读取远程命令或脚本。阅读我在包含腻子同一个临时文件夹中创建此帮助页面文件后的文本文件名GetLists.txt与线:

ls -l/
ls -l /lib 
history -c ; exit 

此命令文件保存为与DOS/Windows行终止ANSI文件。我不知道Unix线路结局是否会更好。在PuTTY的帮助下,没有关于线路终端类型的信息。

我延长了已经输入命令行命令提示符窗口:

plink -ssh [email protected] -m GetLists.txt 

我再次点击按钮返回在帮助和下一列表项3.8.3.8 -pw:指定密码。阅读这个帮助页面上的两个小段落后,我扩展在命令提示符窗口中的命令行再次:

plink -ssh [email protected] -m GetLists.txt -pw password 

我再次点击按钮返回在帮助和看是否有其他的东西可能是同样重要,但我看起来不那么看。

所以我切换到命令提示符窗口并执行此命令。它按预期工作,显示两个目录列表。 (我用PUTTY.EXE几个月或几年前(我不记得)这台主机,因此关键数据已存储在我的电脑上为这台主机。)

我按了键UP并扩展了命令行到:

plink -ssh [email protected] -m GetLists.txt -pw password >DirectoryLists.txt 

我执行此命令,它的工作,而不显示任何东西在屏幕上。

所以我输入下一个命令:

type DirectoryLists.txt 

输出功率为两个目录列表,如先前已看过。

结论:我不能在我连接的主机上用我的测试配置重现您的问题。

顺便说一下:我使用了PuTTY几个月或几年前(我不记得)连接到这个主机与旧版本0.64。但这是我第一次使用plink.exe。而且我在手册中阅读并没有任何问题,并按照此处所述一步一步地创建命令行。

+0

非常感谢。我发现对于**终止** ** exit **部分工作正常,但是当我在自己的命令中调用另一个远程服务器时 - 也就是说,在你的情况下,我做了什么?正在检查正在打开会话的** 172.XX.XX.XX XXXX **,并且我必须自动给出** CTRL + C **调用来终止该会话,并且将** exit **部分添加到完全**终止**。万分感谢。 – harveySp

相关问题