SecureCRT 工具是非常牛逼的,通过该工具也可以执行一些自动化任务的处理(与之前写的 《SecureCRT批量操作》 不是同一类型的自动化),比如自动连接服务器并执行相应的内应,将执行结果输出到文本或excel ,自动读取文件内的指令并执行等等,之前的老版本SecureCRT支持的脚本语言是vbs(自动录制的输出也是vbs),在新版本的SecureCRT中增加了对python语言的支持。这里就结果这两种语言,实现自动化在一台跳板机上对多台主机进行批量化的telnet某端口的测试处理。
一、需求
有一个IP列表文件,里面是一些无序列IP,如下:
- 10.211.57.56
- 10.211.57.57
- 200.200.3.52
- 10.211.57.134
- 10.211.57.140
- 200.200.3.51
现需要实现通过读取该文本内的相关IP,再自动化的通过zabbix用户(已通过sshzabbix命令实现自动化登陆)登陆,登陆后执行telnet进行端口测试。测试完成后,执行quit返回即可。
二、vbs实现
- #$language = “VBScript”
- #$interface = “1.0”
- crt.Screen.Synchronous = True
- ‘ from www.361way.com <itybku@139.com>
- ‘ 根据IP逐台实现ssh登陆,telnet端口测试后,再退回原来的界面,并退出登陆
- Sub Main
- Dim fso
- Set fso = CreateObject(“Scripting.FileSystemObject”)
- ‘Dim inputFile
- Set inputFile = fso.OpenTextFile(“ip.txt”)
- Do While inputFile.AtEndOfStream <> True
- ipadr = inputFile.ReadLine
- crt.Screen.Send “sshzabbix ” & ipadr & chr(13)
- crt.Screen.WaitForString “zabbix”
- crt.Screen.Send “telnet 172.20.21.1 10100” & chr(13)
- crt.Screen.WaitForString “Escape”
- crt.Screen.Send “quit” & chr(13)
- crt.Screen.WaitForString “zabbix”
- crt.Screen.Send chr(4)
- crt.Screen.WaitForString “#”
- ‘crt.Sleep 5
- Loop
- End Sub
vbs实现的SecureCRT更多功能可以参考如下页面:
vbsedit scripts(只参看代码,无需下载该工具,该工具并不十分好用)
三、python实现
- # $language = “Python”
- # $interface = “1.0”
- # code from www.361way.com <itybku@139.com>
- # 多台主机自动化telnet端口测试
- def main():
- with open(‘ip.txt’, ‘r’) as f:
- for ipadr in f.readlines():
- crt.Screen.Send(“sshzabbix “ + ipadr + “\n”)
- crt.Screen.WaitForString(“zabbix”)
- crt.Screen.Send(“telnet 172.20.21.1 10100 \n”)
- crt.Screen.WaitForString(“Escape”)
- crt.Screen.Send(“quit \n” )
- crt.Screen.WaitForString(“zabbix”)
- crt.Screen.Send(“exit \n”)
- crt.Screen.WaitForString(“#”)
- main()
从上面可以看出,使用python代码更清晰一些。不过遗憾的是,目前脚本录制还不支持python,只支持vbs 。
更多python脚本玩法也可以参考官方文档。
评论0