当前位置:首页 >> 信息与通信 >>

SecureCRT脚本编写学习记录


编写脚本要添加头文件 #$Language="VBScript" #$Interface="1.0" 脚本里面如果有主函数 main()的话,就会从主函数开始执行, 但是不是所有语句必须要求放在主函数里面。例如主函数外部的初始化变量语句。 Exit Sub 对出脚本的执行。 脚本使用的几个步骤 1) Connect to the remot

e machine.(telnet到目标板) 2) Start script recording.(开始录制脚本)(录制脚本用完整的敲入命令为好,不使用 自动补齐,例如tab键等) 3) Perform commands to be recorded.(手动在telnet中敲入命令) 4) Stop script recording.(停止录制脚本) 5) Specify a filename in which to save the recorded script code.(保存录制好的脚 本) 6) Review and edit the recorded script file.(查看和编辑脚本) 常用 ASCII 字符,ASCII 值为 8、9、10 和 13 分别转换为退格、制表、换行和回车字符

一个很好的例子(包括变量声明、循环、判断、输入输出) 作为维护 CE 设备的一个普通工程师,可能会有同样的问题困惑着我们——如何对众多的 CE 设备进行有效的巡检和维护管理?SecureCRT 给我们提供了很好的平台——脚本工具制作 和运行。下面就 SecureCRT 工具常用到的几个函数阐述如下: 在 SecureCRT 里,用得最多的应该就是 crt.Screen,基本上很多操作都是基于屏幕的返回 字来决定下一步该作何操作: 第一:crt.Screen.WaitForString("KeyString",timewaiting) 该函数是单字符串判断,KeyString 是需要查找的关键字,timewaiting 是一个超时阀值, 例如:crt.Screen.WaitForString("people:",5)该行代码的意思就是在 5 秒内没有检测到 people:出现,就执行下一条语句,如果改成:crt.Screen.WaitForString("people:")那就 是指直到 people:出现才执行下一行代码。 WaitForString 是有返回值的,返回值是 True 或者 False。因此,可以根据返回值进行条 件判断以确定一下条代码。例如: If (crt.Screen.WaitForString ("current state : UP",1)<>False) Then portStatus="PortUP" Else portStatus="PortDown" End If msgbox portStatus 这段代码用于判断端口状态情况并记录下来. 第二:crt.Screen.WaitForStrings("KeyString1","KeyString2",...,timeout) 用于多个字符串的判断,timeout 的作用是一样的。例如: crt.Screen.WaitForStrings("cisco","huawei","H3C",5) 意思就是在 5 秒内有检测到相应的字符时,返回相应的索引号(索引号是从 1 开始的)。如 果都没有检查到,则返回 0.因此,该函数的使用可以如下: Dim SwitchKey SwitchKey=crt.Screen.WaitForStrings("cisco","huawei","H3C",5) Select case SwitchKey case 1

MsgBox "思科设备" case 2 MsgBox "华为设备" case 3 MsgBox "华三设备" case else MsgBox "未知设备" End Select 其实 SecureCRT 支持的脚本语言就是 VBS,这个脚本语言与 VB 有较大的不同,对于界面的 支持性较差。不过也有几个对话性的函数 1、InputBox :提示用户输入参数 temp = inputbox("提示用户你输入参数的名称","对话框的名称") :需要将输入的参数赋 值给某一个参数进行使用。 2、输出函数 msgbox msgbox “给用户输出的信息对话框” eg.求正方形面积的脚本 dim r,s r=inputbox("请输入正方形的边长:","求正方形面积的程序") s=r*r msgbox(s)

下面就我的工作性质,跟我同事一块制作的一个脚本程序——维护着 N 台路由器设备,每天 需要对这些设备进行例行巡检。下面是程序的所有代码,希望对各位有所帮助 ******************************************************************************* ***************************

******************************************************************************* *************************** #$language = "VBScript" #$interface = "1.0" '说明: '本代码可在 CRT 工具中实现 Cosico,华为,爱立信路由器交换机数据的自动配置或作为设 备巡检之用; Set screen = crt.Screen '创建屏幕对象 '定义全局变量: 'Device 变量为操作设备对象数组,作为存储设备名用; 'CiscoAggreOfCommands 变量为思科设备命令集合数组,作为存储思科设备命令用; 'NE40EAggreOfCommands 变量为华为 NE40E 设备命令集数组, 作为存储华为 NE 设备命令用; 'SE800AggreOfCommands 变量为爱立信 SE800 设备命令集数组, 作为存储爱立信 SE800 设备 命令用; 'ArrreOfRiskCommands 变量为各厂家设备存在风险性操作命令的数组,作为存储过滤风险 操作命令之用; 'DeviceNumth 变量为 Device 数组序号; 'CommandNumth 变量为各厂家命令数组的序号; 'ResultOfType 变量为判断设备类型标识符; 'TypeOfCommand 变量作为存储当前命令类型用; Dim Device,CiscoAggreOfCommands,NE40EAggreOfCommands,SE800AggreOfCommands,ArrreOfRi skCommands Dim DeviceNumth , CommandNumth ,ResultOfType Dim TypeOfCommand '爱立信设备集合 'Device = Array("CE35-ERICSE800","CE36-ERICSE800","CE37-ERICSE800","CE38-ERICSE800") '华为设备集合 Device = Array( "CE07-HWNE40E","CE08-HWNE40E",_ "CE09-HWNE40E","CE10-HWNE40E",_ "CE11-HWNE40E","CE12-HWNE40E",_ "CE21-HWNE40E","CE22-HWNE40E",_ "CE23-HWNE40E","CE24-HWNE40E",_ "CE25-HWNE40E","CE26-HWNE40E",_ "CE29-HWNE40E","CE30-HWNE40E",_ "CE33-HWNE40E","CE34-HWNE40E",_ "CE45-HWNE40E","CE46-HWNE40E",_ "CE47-HWNE40E","CE48-HWNE40E",_ "CE49-HWNE40E","CE50-HWNE40E") '思科设备命令集合 CiscoAggreOfCommands = Array("show cdp",_ "show conf",_ "show hard",_

"show interface",_ "show ip route",_ "show conf") '华为 NE40E 设备命令集合 '健康检查 '告警检查 '日志检查 '单板运行状态检查 'CPU 占用率检查 '内存占用率检查 '接口和链路状态以及流量检查 'NE40E 接口状态检查 'OSPF 邻居状态检查 '路由信息检查 NE40EAggreOfCommands = Array("display health",_ "display trapbuffer",_ "display logbuffer",_ "display device",_ "display cpu-usage",_ "display memory-usage",_ "display interface",_ "dis ospf peer",_ "display ip routing-table") '爱立信 SE800 设备命令集合 '单板注册信息 '办卡加电自检 '单板运行状态检查 '检查背板运行状态 '检查主控板冗余性 '存储设备利用率 'CPU 利用率 '内存利用率检查 '端口运行状态检查 '端口数据收发状态检查 '电源使用情况检查 '检查 OSPF 状态 SE800AggreOfCommands = Array("show chassis",_ "show diag on-demand detail",_ "show hardware",_ "show backplane-status",_ "show redundancy",_ "show disk",_ "show process",_ "show memory",_

"show port detail",_ "show port counters detail",_ "show chassis power",_ "context ChinaMobile_NGN_SG",_ "show ospf neighbor",_ "context ChinaMobile_NGN_Media",_ "show ospf neighbor") '风险命令过滤集合 ArreOfRiskCommands = Array("reb","rel") 'CE 汇聚网管平台登陆子函数 Function LandIPNET screen.Send ""&chr(13) screen.WaitForString "ogin:" screen.Send "XXXXXXXXXX" & chr(13) screen.WaitForString "Password:" screen.Send "XXXXXXXXXX"& chr(13) End Function '各厂家设备选择登陆子函数 Function LandDevice screen.Send ""&chr(13) screen.WaitForString "Console&gt;&gt;" screen.Send "open " & Device(DeviceNumth) ResultOfType = screen.WaitForStrings("Cisco","NE40E","SE800",4) If ResultOfType = 1 Then TypeOfCommand = CiscoAggreOfCommands 'CommandNumth=0 ElseIf ResultOfType = 2 Then TypeOfCommand = NE40EAggreOfCommands 'CommandNumth=0 ElseIf ResultOfType = 3 Then TypeOfCommand = SE800AggreOfCommands 'CommandNumth=0 Else MsgBox "Error Type Of Device" Do Loop End If screen.Send ""&chr(13) screen.WaitForStrings "Username:","ogin:" screen.send "XXXXXXXXXX"& chr(13) screen.WaitForString "Password:" screen.Send "XXXXXXXXXX"& chr(13) Do

Loop Until (screen.WaitForStrings("NE40E&gt;","SE800#",5)<>False) End Function '退出设备子函数 Function ExitDevice If ResultOfType = 1 Then ElseIf ResultOfType = 2 Then screen.Send " "&"quit" & chr(13) Do screen.Send ""&chr(13) Loop Until (screen.WaitForString("Console&gt;&gt;",1)<>False) ElseIf ResultOfType = 3 Then screen.Send " "&"exit" & chr(13) Do screen.Send ""&chr(13) Loop Until (screen.WaitForString("Console&gt;&gt;",1)<>False) Else End If End Function Function ShowAll Do while (screen.WaitForStrings("More","more",3)<>False) crt.Screen.Send " " Loop End Function '风险命令过滤子函数 Function RiskCommands Dim result result = screen.WaitForStrings(ArreOfRiskCommands,1) If result <> False Then MsgBox "The command you are importing exists risk!" Do Loop End If End Function Sub Main crt.Screen.Synchronous = True LandIPNET For DeviceNumth=LBound(Device) To UBound(Device) LandDevice CommandNumth=0 For CommandNumth = LBound(TypeOfCommand) To UBound(TypeOfCommand) screen.Send " "&TypeOfCommand(CommandNumth) RiskCommands screen.Send "" & chr(13)

ShowAll If screen.WaitForString("More",1)<>False Then ShowAll crt.Sleep 4000 screen.Send "" & chr(13) Next ExitDevice Next crt.Screen.Synchronous = False End Sub


相关文章:
SecureCRT Console记录日志功能
SecureCRT Console记录日志功能_计算机软件及应用_IT/计算机_专业资料。D:\Ruijie\Tools\SecureCRT 6.0\Serial_log\[%Y 年%M 月%D 日][%h 时%m 分%s 秒][...
SecureCRT的日志功能,自动记录
SecureCRT的日志功能,自动记录_计算机软件及应用_IT/计算机_专业资料。SecureCRT的...SecureCRT脚本编写学习记... 8页 免费 SecureCRT的实用教程 13页 免费©...
SecureCRT详细使用过程(整理版)
(包括客户端与主机互相连接时的一 些信息内容) 2)Edit 编辑 拷贝粘贴等 3) ...SecureCRT脚本编写学习记... 8页 免费 SecureCRT使用指南 12页 免费 Secure...
secureCRT常用命令总结
secureCRT常用命令总结_计算机软件及应用_IT/计算机_专业资料。花了半天时间辛...的内容删除 :w :保存当前文件 :e filename:打开文件 filename 进行编辑 :x:...
SecureCRT的详细使用教程
(包括客户端与主机互相连接时的一 些信息内容) 2、Edit 编辑 拷贝粘贴等 3、...SecureCRT_脚本基础 120页 1下载券 SecureCRT乱码问题 5页 免费 芯达STM32...
SecureCRT工具使用手册
SecureCRT 工具学习笔记 1. 背景及相关概念 Secure...的宏一样,把你的重复性操作记录为一个脚本文件 ...浏览文件内容 i {insert 写输入} esc 退出 insert...
SecureCRT使用命令大全
SecureCRT使用命令大全_计算机软件及应用_IT/计算机_...[说明]: 将磁盘缓冲区内容写回磁盘 2.9 mount [...continue n n 表示退到包含 continue 语句的第 n ...
SecureCRT设置自动保存日志log信息
2014.03.05 刘春龙 SecureCRT 设置自动保存日志 log 信息 用 SecureCRT 可以设置成自动保存日志 log 信息 以下是一个例子:进入会话选项——记录文件——日志文件...
SecureCRT技巧总结
(包括客户端与主机互相连接时的一 些信息内容) 2、Edit 编辑 拷贝粘贴等 3、...SecureCRT脚本编写方法 17页 1下载券 SecureCRT安装教程+技巧... 13页 免费...
利用SecureCRT实现交换机自动登录脚本
利用SecureCRT 实现交换机自动登录脚本 原理简介:本脚本实现输入交换机登录名后...SecureCRT脚本编写学习记... 8页 免费 SecureCRT脚本使用笔记 18页 免费 Secure...
更多相关标签: