您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

SecureCRT脚本实现自动化交换机巡检

时间:2022-10-13 11:47:39  来源:今日头条  作者:呆萌小可萘日常

SecureCRT对于每一位网工来说并不陌生,相信每个网工的电脑上肯定都装着这款软件。以前刚开始玩的时候觉得就是普通的仿真终端程序而已,其实它软件还有更加强大的脚本功能,SecureCRT可以支持VBScript、JAVAscript、Python/ target=_blank class=infotextkey>Python脚本语言等等。通过脚本我可以来拓展更多丰富的功能,比如可以通过脚本实现自动化的命令执行。

刚巧社区里面的小伙伴最近在做一个大项目,有上百台交换机配置需要收集。刚好最近有研究,于是就搞起来了。 今天我们来说说如何使用SecureCRT制作一个自动化批量巡检交换机的脚本,这里我们用VBScript脚本语言来制作,官方对这个支持的也挺好的,还有帮助文档,而且网上关于用VBScript编写CRT脚本的教程也很多,遇到问题还可以百度下。通过脚本自动化的执行提升工作效率,在也不用自己来搬砖了。

制作脚本;

这里我们以cisco交换机为例子,讲解下没段代码的含义,然后您可以根据附件提供的代码根据下面的教程自己进行修改脚本,适应自己的环境。脚本适用于可以通过CRT登陆设备,比如华三、华为交换机或在linux操作系统。

1、首先我们需要让脚本来自动帮我们登录交换机并进入到enable模式,请看下面的脚本:

crt.Screen.WAItForString ("Username:") ‘等待字符串Username出现,区分大小写

crt.screen.Send("cisco")&chr(13) ‘发送字符串cisco并回车

crt.Screen.WaitForString "Password: "

crt.Screen.Send "cisco" & chr(13)

crt.Screen.WaitForString ">"

crt.Screen.Send "en" & chr(13)

crt.Screen.WaitForString "Password: "

crt.Screen.Send "cisco" & chr(13)

注:设备的账号密码可以在上面的脚本中修改发送的字符串即可

2、通常我们都会在crt界面点击记录会话日志,这里我们就不需要手动,用脚本就解决了。

crt.session.LogFileName="192.168.1.1.log" ‘设置记录的日志文件名称

crt.session.Log(true) ‘开始记录日志

3、通常需要我们来手敲的命令,用下面的脚本就可以让crt自己敲起来了。

crt.Screen.Send "show clock" & chr(13)

crt.Screen.WaitForString "#"

crt.Screen.Send "show running-config" & chr(13)

nextmore ‘调用自定义函数

crt.Screen.Send "show version" & chr(13)

nextmore ‘调用自定义函数

那么如果想加入其它命令怎么办呢?直接在这块脚本上附加上下面的代码即可。

crt.Screen.Send "show vlan" & chr(13)

crt.Screen.WaitForString "#"

如果输出内容较多会出现more,只要稍作修改,调用我们自定义的函数即可。

crt.Screen.Send "show vlan" & chr(13)

nextmore

4、我们知道当crt界面不能输出所有信息的时候,就会出现“—more—”的字符串,这个时候需要手动执行空格或者回车查看更多的内容,但是因为设备的不通需要执行的空格数量又不确定,于是我们这里就编写一个循环语句,当遇到More字符串出现的时候就自动发送空格。由于很多命令都会出现类似的情况,于是我们可以将整循环编写为一个函数,用于调用即可。以简化我们的代码。

编写函数:

Function nextmore

do while ( crt.screen.waitforstring("--More--",3)=true)

crt.screen.Send(chr(32))

loop

End Function

脚本含义:当3秒内等等到字符串"--More--"的出现则执行下面的语句发送一个chr(32)(空格键的ASCII值),while判断条件成立执行,不成立则退出循环。

5、关闭日志记录,当然这个操作我们也可以自动化。

crt.screen.waitforstring("#")

crt.session.Log(false)

注:当等待到“#”出现,也就是命令都执行完毕后,停止日志记录。

6、登录下一台交换机执行上面操作,一台设备的所有操作都做完,下面我们要让这些脚本自动一台一台的去执行。这里我们就需要再次用到循环语句。

for i=1 to 254 ‘循环从1到254依次循环,i的值会自动递增

dim ip ‘创建变量ip

ip="192.168.1."&i ‘定义变量,作为IP地址,ip随着循环变化而变

crt.screen.Send("te.NET "&ip)&chr(13) ‘telnet登录交换机

'判断是否telnet成功,如果31秒内出现Username登录则执行下面语句

if(crt.Screen.WaitForString ("Username:",31)=true) then

'下面语句为条件成立后执行的语句内容

crt.session.LogFileName=ip&".log" ‘以IP地址作为日志的文件名

crt.session.Log(true)

。。。。

end if ‘if语句结束

next ‘和for循环对应,执行下一次循环

脚本知识

crt.Screen.Send 发送一个字符串

crt.Screen.WaitForString 等待字符串出现,如果匹配到字符串后执行下面的操作

chr(13) 这是回车键的ASCII码值

chr(32) 这是空格键的ASCII码值

& VBScript里面的连接字符串连接符

' 注释行符号,在文本前打上英文的单引号后,表示此行语句不被执行

Do...Loop 语句

运行循环,当条件为 true 或者直到条件为 true 时。

Do while(判断条件)

执行语句

Loop

For...Next 语句

运行一段语句指定的次数

For i=1 to 254

执行语句

Next

IF语句

假如你希望在条件为 true 时执行一系列的代码,可以使用这个语句。

If (判断条件) then

执行语句

End if

如果还有不明白的地方可以跟帖回复,或者百度下去学习下VBScript脚本语言,脚本语言比较简单,短时间可以学会基础,有基础了搞个crt脚本是没问题的。



Tags:SecureCRT   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
SecureCRT脚本实现自动化交换机巡检
SecureCRT对于每一位网工来说并不陌生,相信每个网工的电脑上肯定都装着这款软件。以前刚开始玩的时候觉得就是普通的仿真终端程序而已,其实它软件还有更加强大的脚本功能,Secur...【详细内容】
2022-10-13  Search: SecureCRT  点击:(751)  评论:(0)  加入收藏
强大的终端仿真工具:SecureCRT(win/mac)
SecureCRT是一款支持SSH(SSH1和SSH2)、Telnet、串口等终端的仿真程序。SecureCRT为组织中的每个人提供安全的远程访问,文件传输和数据隧道。无论您是要更换Telnet还是终端,还是...【详细内容】
2022-08-23  Search: SecureCRT  点击:(551)  评论:(0)  加入收藏
用SecureCRT查看交换机内相关配置参数及含义,用PC连线进行查看
一、Console口连接交换机,进入查看配置display this 显示此sysname SW 系统名telnet server enable 开启telnet服务irf mac-address persistent timer 配置IRF的桥MAC的保留...【详细内容】
2022-07-31  Search: SecureCRT  点击:(1989)  评论:(0)  加入收藏
win10下解决EVE模拟器连接SecureCRT单窗口多标签
刚开始学习使用EVE模拟器,大家会发现一个问题:点开路由器和交换机时,弹出的窗口和老师教学的时候不一样,只是一个简单的显示窗口,没有其他信息。 打开VMware,导入虚拟机,按照开机后...【详细内容】
2022-02-11  Search: SecureCRT  点击:(1606)  评论:(0)  加入收藏
SecureCRT知识
前言熟悉SecureCRT的伙伴们,都应该知道这个是连接Linux服务器的工具。但是你了解过怎么配置吗?这里简单对一些配置项提供一些建议。 修改会话缓存大小因为SecureCRT默认情况下...【详细内容】
2020-05-16  Search: SecureCRT  点击:(321)  评论:(0)  加入收藏
SecureCRT安装及破解
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。...【详细内容】
2019-09-10  Search: SecureCRT  点击:(1201)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(2)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(7)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条