SecureCRT 工具是非常牛逼的,通过该工具也可以执行一些自动化任务的处理(与之前写的 《SecureCRT批量操作》 不是同一类型的自动化),比如自动连接服务器并执行相应的内应,将执行结果输出到文本或excel ,自动读取文件内的指令并执行等等,之前的老版本SecureCRT支持的脚本语言是vbs(自动录制的输出也是vbs),在新版本的SecureCRT中增加了对python语言的支持。这里就结果这两种语言,实现自动化在一台跳板机上对多台主机进行批量化的telnet某端口的测试处理。

一、需求

有一个IP列表文件,里面是一些无序列IP,如下:

110.211.57.56
210.211.57.57
3200.200.3.52
410.211.57.134
510.211.57.140
6200.200.3.51

现需要实现通过读取该文本内的相关IP,再自动化的通过zabbix用户(已通过sshzabbix命令实现自动化登陆)登陆,登陆后执行telnet进行端口测试。测试完成后,执行quit返回即可。

二、vbs实现

 1#$language = "VBScript"
 2#$interface = "1.0"
 3crt.Screen.Synchronous = True
 4' from www.361way.com <itybku@139.com>
 5' 根据IP逐台实现ssh登陆,telnet端口测试后,再退回原来的界面,并退出登陆
 6Sub Main
 7    Dim fso
 8    Set fso = CreateObject("Scripting.FileSystemObject")
 9    'Dim inputFile
10    Set inputFile = fso.OpenTextFile("ip.txt")
11    Do While inputFile.AtEndOfStream <> True
12        ipadr = inputFile.ReadLine
13        crt.Screen.Send "sshzabbix " & ipadr & chr(13)
14        crt.Screen.WaitForString "zabbix"
15        crt.Screen.Send "telnet 172.20.21.1 10100" & chr(13)
16        crt.Screen.WaitForString "Escape"
17        crt.Screen.Send "quit" & chr(13)
18        crt.Screen.WaitForString "zabbix"
19        crt.Screen.Send chr(4)
20        crt.Screen.WaitForString "#"
21        'crt.Sleep 5
22    Loop
23End Sub

vbs实现的SecureCRT更多功能可以参考如下页面:

scripting_essentials.pdf

Example Scripts for SecureCRT

vbsedit scripts(只参看代码,无需下载该工具,该工具并不十分好用)

三、python实现

 1# $language = "Python"
 2# $interface = "1.0"
 3# code from www.361way.com <itybku@139.com>
 4# 多台主机自动化telnet端口测试
 5def main():
 6    with open('ip.txt', 'r') as f:
 7        for ipadr in f.readlines():
 8            crt.Screen.Send("sshzabbix " + ipadr + "\n")
 9            crt.Screen.WaitForString("zabbix")
10            crt.Screen.Send("telnet 172.20.21.1 10100 \n")
11            crt.Screen.WaitForString("Escape")
12            crt.Screen.Send("quit \n" )
13            crt.Screen.WaitForString("zabbix")
14            crt.Screen.Send("exit \n")
15            crt.Screen.WaitForString("#")
16main()

从上面可以看出,使用python代码更清晰一些。不过遗憾的是,目前脚本录制还不支持python,只支持vbs 。

更多python脚本玩法也可以参考官方文档