这是任务。
一个UNIX应用程序,它接受多个文本输入并输出一些数据。然后解析数据并[完成处理]。我猜该程序是一个控制台应用程序,正在使用NCurses,但从根本上来说,它是一个控制台应用程序。
我无法控制UNIX机器,所以只能使用它所安装的机器。它具有Korn外壳。没有Python的期望,等等,所以它必须是Korn shell的答案。
基本要点是SSH到UNIX服务器并每4分钟运行一次应用程序并获取其最终输出。
最初,我是在Paramiko的客户端计算机上使用Python尝试此操作的,虽然确实可以完成工作,但是老实说它非常hacky。
我决定在UNIX服务器上运行Korn脚本,该脚本在完成输出后会简单地创建一个文件。我在这里忽略了解析文件,因为这很容易。我的一般想法是打开SSH,连接,运行Korn脚本,抓取文件并执行任何操作。
现在让我们说UNIX应用程序需要这个:
发送用户名\ n
发送密码\ n
发送一些搜索文字\ n
发送其他一些文字\ n
按任意键退出\ n
现在,我将其组合在一起,并且在一个完美的世界中,它确实起作用了。
#!/usr/bin/ksh
./SSH-Test << TextForInput > the-data-i-want.txt
the-username
the-password
some-input
some-other-input
some-key-press
exit 0
我的问题是,如果一切正常,一切都很好。 (也许有更好的方法)。如果说更改了密码,显然这是行不通的,但是如果密码不起作用,我不希望此过程保持打开状态。
我想要的是某种(也许过了一段时间,它没有关闭该过程)。
例如(非真实代码)
#!/usr/bin/ksh
Try Timer(Kill when been running for 4 mins)
{
./SSH-Test << TextForInput > the-data-i-want.txt
the-username
the-password
some-input
some-other-input
some-key-press
exit 0
}
Catch
{
KILL this process as something has gone wrong
}
此代码可能完全是错误的处理方式,因此我愿意接受选择。再说一次,在您推荐[COOL LIBRARY HERE]之前,此服务器没有它们,我无法安装它们。仅适用于Korn脚本。