利用CRT配合VBS脚本实现自动化巡检
利用CRT配合VBS脚本实现自动化巡检
以山石防火墙巡检为例
1 设备列表文件:list.txt
内容格式:主机名[空格]IP[空格]SSH用户名[空格]SSH密码
SG-6000 192.168.1.1 hillstone Admin@123
SG-6000-02 192.168.1.2 hillstone Admin@123
- 请务必确认主机名与设备配置一致。
- 确保所有的设备都可以正常访问。
2 VBS脚本: 2022山石巡检.vbs
#$language = "VBScript"
#$interface = "1.0"
' Hillstone防火墙巡检脚本V1.0
' 注意:
' 请在英文路径下使用,中文路径可能会报错。
' 要求主机名与设备配置一致,不一致结果可能会出错。
crt.Screen.Synchronous = True
Sub Main
'打开设备列表文件。格式:设备主机名 ip地址 ssh登录账号 ssh密码
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso,file1,line,str1,params
Set fso = CreateObject("Scripting.FileSystemObject")
'定义设备列表文件位置
Set file1 = fso.OpenTextFile("C:\Users\fcarey\Desktop\checkTmp\list.txt",Forreading, False)
crt.Screen.Synchronous = True
DO While file1.AtEndOfStream <> True
'读出每行
line = file1.ReadLine
'分离每行的参数:主机名 IP地址 用户名 密码
params = Split(line)
'定义输出日志名称:主机名_IP.txt
'crt.session.LogFileName = "C:\Users\fcarey\Desktop\checkTmp\logfiles\" & params(0) & "_" & params(1) & ".txt"
'定义输出日志名称:主机名.txt
crt.session.LogFileName = "C:\Users\fcarey\Desktop\checkTmp\logfiles\" & params(0) & ".txt"
crt.session.Log(true)
'SSH到这个设备上
crt.Session.Connect ("/SSH2 /PASSWORD "& params(3) & " " & params(2) & "@" & params(1))
'巡检命令
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "ter len 0" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "ter width 512" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show config" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show version detail" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show version" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show module" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show interface" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show session generic detail" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show session generic" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show memory" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show memory detail" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show cpu " & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show cpu detail" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show ip route static" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show ip route" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show arp" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show environment" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show ha group 0" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show dp-filter" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show dp filter" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show snat resource" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show snat rule" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show snat" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show dnat rule" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show dnat" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show license" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show logging event " & chr(124) & " include 2022" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show logg alarm " & chr(124) & " include 2022" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show logg security " & chr(124) & " include 2022" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "show tech-support toconsole" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send "ter len 50" & chr(13)
crt.Screen.WaitForString params(0) & "# "
crt.Screen.Send chr(13)
'存在more时的脚本
'Do Until crt.Screen.WaitForString ("---- More ----",3) = False
'crt.Screen.Send " "
'loop
'备份完成后退出
crt.Session.Disconnect
loop
crt.Screen.Synchronous = False
End Sub
3 使用方式
打开CRT --> Script --> Run --> 选择"2022山石巡检.vbs" --> 等待输出结果 --> 确认并拷贝结果 --> 跑路。
利用CRT配合VBS脚本实现自动化巡检的更多相关文章
- 利用wget配合bash脚本同时下载多个文件
先把需要下载的文件写入到一个文件中,命名为urls.txt,比如: http://blog.is36.com/a.jpg http://blog.is36.com/b.jpg http://blog. ...
- Vbs脚本经典教材(转)
Vbs脚本经典教材(最全的资料还是MSDN) —为什么要使用Vbs? 在Windows中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改 ...
- Vbs 脚本编程简明教程之一
—为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件 ...
- Vbs脚本经典教材
转载:http://www.cnblogs.com/BeyondTechnology/archive/2011/01/10/1932440.html Vbs脚本经典教材(最全的资料还是MSDN) —为 ...
- 使用vbs脚本进行批量编码转换
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看分析在Linux系统下开发的项目代码,我们知道Linux系统中文本文件默认编码格式是UTF-8,而Windows中文系统中的默 ...
- VBS脚本病毒特点及如何防范3(转)
5.Vbs病毒生产机的原理介绍 所谓病毒生产机就是指可以直接根据用户的选择产生病毒源代码的软件.在很多人看来这或许不可思议,其实对脚本病毒而言它的实现非常简单. 脚本语言是解释执行的.不需要编译,程序 ...
- 自动删除超过30天文件的vbs脚本【转发】
利用代码制作自动删除超过30天的文件及文件夹的vbs脚本,定期清理文件夹中长时间无用文件. 1.首先在新建一个文本文档,粘贴代码(代码可通过添加微信公众号vbs_edit(VBS脚本之家)回复018获 ...
- vbs脚本实现qq定时发消息(初级)
vbs脚本实现QQ消息定时发送 目标 批处理又称为批处理脚本,强大的强大功能可以高效得实现很多功能,例如批量更改文件格式,批量进行文件读写,今天我们的目标是用vbs脚本编写可以发送qq消息的脚本,并利 ...
- 工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01
最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定 ...
- 工控随笔_18_西门子_WinCC的VBS脚本_07_变量作用域和传值、传址
在vbs脚本中也存在和其他编程语言一样的概念,那就是变量的作用域,变量的作用域决 定在什么范围内可以访问. 同样的在vbs脚本中对于变量也有一个生命周期, 变量的生命周期决定了变量的存续时间 这个主要 ...
随机推荐
- 2022年鲜为人知的CSS 特性了解起来~
前言 随着CSS的不断发展,一些很酷且有用的属性要么完全被忽视,要么由于某种原因不像其他常见属性那样被开发者熟练应用.这篇文章我们将一起学习那些CSS中陌生但非常有用的CSS属性,这些属性你可能听说过 ...
- 4.7:Hive操作实验
〇.概述 1.拓扑结构 2.目标 通过Hive实验熟悉Hive的基本操作 一.操作流程 1.启动环境 2.启动hive 输入 cd /home/user/bigdata/apache-hive-2.3 ...
- 为什么推荐Kestrel作为网络开发框架
为什么推荐Kestrel 网络框架千千万万,在dotnet平台,我们可以直接手撸Socket,也可以基于dotnetty来开发,或者选择某些第三方类似于dotnetty的网络库,为何我要推荐Kestr ...
- 填坑日志-云网络智慧课堂双网卡Mac地址读取错误的问题及解决
云网络智慧课堂的双网卡问题记录及解决方案 教师端 其实这里双网卡的问题一直没有解决,分为了两部分,一部分是教师端,一部分是学生端.症状类似,问题也类似,都是在设计之初因为硬件限制可能没有考虑到双网卡的 ...
- 从Qt到C#,通过COM组件达成跨语言跨平台链接,或者说从托管到非托管的思路
从Qt到C#,通过COM组件达成跨语言跨平台链接,或者说从非托管到托管 写在前面 c#真的是一种非常蛋疼的语言,和别的语言兼容性差,界面开发效率也不是很高,但是胜在库功能强大,对windows的兼容好 ...
- python 错误之TypeError: XXXXX() takes no keyword arguments
举个例子: str1 = 'sunlightn' f = str1.rfind("n", __start=1, __end=2) print(f) 以上代码运行后出现: " ...
- Blazor组件自做十四 : Blazor FileViewer 文件预览 组件
Blazor FileViewer 文件预览 组件 目前支支持 Excel(.docx) 和 Word(.xlsx) 格式 示例: https://www.blazor.zone/fileViewer ...
- [ 赛后总结 ] CSP-J 2022
前言 今年没考好,估分 100+60+0+10=170pts ,大概能混个2=,没什么用. 这下好了,期中也砸了,已经排到全校 30 开外了,果然鱼和熊掌不可兼得,况且我双双落空,接下来怕是想搞也搞不 ...
- Flutter异常监控 - 贰 | 框架Catcher原理分析
前言 在给 Flutter 应用做异常监控的时候,一开始我是拒绝滴,如果不考虑 Flutter Engine 和 native 侧的监控,用我另一篇文章中不得不知道的 Flutter 异常捕获知识点 ...
- BZOJ4919 大根堆(树形dp+线段树合并)
用 multiset 启发式合并贪心维护 LIS 的做法就不多说了,网上题解一大堆,着重讲一下线段树合并维护 \(dp\). \(O(n^2)\) 的 \(dp\) 非常显然.离散化后,设 \(dp[ ...