醉里乾坤大,壶中日月长

(小技巧)VBS验证LINUX后台信息-进程

上一篇 / 下一篇  2009-06-19 12:07:24

还是N久之前的需求了,头让通过QTP验证设备重启后后台相关进程能够正确启动,这个问题困扰了很久,不过最近算是彻底给解决了。
本机平台:Windows Xp SP3
后台:自己订制Linux 2.6.23
第三方工具:plink(putty包中有)

一般经常远程登陆linux系统的朋友经常会使用到putty这款工具,而plink就是putty的command line格式的吧,我是这么想的,先看plink的帮助文档,总结前后发现几个非常有用的参数:
-ssh 代表使用ssh协议登陆
-l 用户名
-pw password
-P 端口
同时一些专门针对ssh方式登陆的用户参数:
-i key文件
-m 远程要执行的shell命令
熟悉了上面的这些参数,我拼成的命令行为:
cmdline="cmd /K plink -ssh -l root -pw "&chr(34)&password&chr(34)&" -P 22 192.168.1.1 -i C:\***.ppk -m "&Chr(34)&stempFile&Chr(34)
这里面的-l root代表是root用户登陆,-pw后面跟的是密码, -P链接的端口是192.168.1.1的22号TCP端口,同时-i说明使用c盘下的***.ppk,-m代表的是linux shell命令文件。
这里面重点要说明下-pw,如上所示,-pw然后是&chr(34)&password&chr(34)&,这是因为password中有空格,所以需要""括起来,而-m后面的&Chr(34)&stempFile&Chr(34)也是因为有空格吗?这个倒不是,这是因为我想使用个temp文件,用完了就删除了,好,最核心的连后台的命令构造好了,就看我们是如何运用它了,且看代码:
dim spassword,ofso,stempFile,scmdline,oShell,cmdfile,scommand
spassword = " password "
scommand = "ps -elf|grep sprocessname|grep -v grep"
scmdline = cmdline="cmd /K plink -ssh -l root -pw "&chr(34)&password&chr(34)&" -P 22 192.168.1.1 -i C:\***.ppk -m "&Chr(34)&stempFile&Chr(34)
stempfile = "c:\temp.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set cmdfile = fso.CreateTextFile(stempFile,True)
cmdfile.WriteLine(scommand)
Set Shell = CreateObject("Wscript.shell")
Set Exec=oShell.Exec(scmdline).StdOut
MsgBox CStr(oExec.ReadAll)
cmdfile.Close
fso.DeleteFile stempFile,True
这里面注意:要使用oShell.Exec而不适用oShell.Run,这样做是因为使用oShell.Exec可以能够方位命令的StdOut,正如上面代码所示,下面的内容就是oExec.ReadAll,或者你也可以oExec.Readline等,这样就可以对返回的结果进行进一步处理了...

PS:自己做个备份,代码部分因为涉及到一些保密内容(如用户名,密码等)所以修改了,不一定能运行,如果实际想用的话要修改,这个是个办法,通过这个tip可以在windows平台下远程执行Linux shell并且处理返回结果,这样在我们windows平台的自动化测试中可校验的内容就更多了



TAG:

 

评分:0

我来说两句

日历

« 2024-03-12  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 72321
  • 日志数: 106
  • 建立时间: 2009-06-05
  • 更新时间: 2011-09-09

RSS订阅

Open Toolbar