通过SecureCRT自动批量备份交换机的vbs脚本

合集下载

关于SecureCRT的VBScript脚本使用心得

关于SecureCRT的VBScript脚本使用心得

Select case SwitchKey
case 1
MsgBox "思科设备"
case 2
MsgBox "华为设备"
case 3
MsgBox "华三设备"
case else
MsgBox "未知设备"
End Select
(3) 其实SecureCRT支持的脚本语言就是VBS,这个脚本语言与VB有较大的不同,对于界面的支持性较差。不过也有几个对话性的函数
'输入密码,回车
crt.screen.send "123456"
crt.screen.send Chr(13)
End Sub
2. 选择结构的脚本
if ... then ...else...结构和case结构见基础知识举例
3. 循环结构
关于SecureCRT的VBScript脚本使用心得
在SecureCRT中使用VBSCRIPT脚本,确实能够提高我们的工作效率,并且可以实现完全的自动化。
SecureCRT给我们提供了很好的平台——脚本工具制作和运行。下面就SecureCRT工具常用到的几个函数阐述如下:
1. 在SecureCRT里,用得最多的应该就是crt.Screen,基本上很多操作都是基于屏幕的返回字来决定下一步该作何操作:
WaitForString是有返回值的,返回值是True 或者 False。因此,可以根据返回值进行条件判断以确定一下条代码。例如:
If (crt.Screen.WaitForString ("current state : UP",1)<>False) Then

SecureCRT批量操作指导书

SecureCRT批量操作指导书

文档名称 文档密级:
2013-4-16
华为机密,未经许可不得扩散 第1页, 共1页 SecureCRT 批量操作指导书
1、 打开批量操作窗口:Options->Global Options->Appearance->Show chat window
打勾,在屏幕下方会显示空白框
2、 鼠标右键单击空白框,选择“Send chat to all tabs ”,然后直接在<Send chat to all
tabs>提示符下输入命令,就可以在所有打开的设备上批量操作命令了。

如下图:在<Send chat to all tabs>提示符下输入命令“vmstat 1 10”,在SecureCRT 工具中登录的所有设备都会同时执“vmstat 1 10”命令:
3、
在执行批量操作前如果需要保存log 日志,则选择File->Log session
对于维护设备非常多的局点,使用本批量操作方法可以大幅度提高工作效率。

SecureCRT批量备份路由器设置

SecureCRT批量备份路由器设置

在日常工作中,可能面临几百台网络设备的管理,如何高速可靠的对这些设备进行管理备份下面以华为H3C为例:实测1百多台设备非常高效且容错效果好不易中断,耗时几分钟即对所有路由器配置进行了备份给出的示例脚本并非网上所流传的VBS脚本,而是用python编写的脚本,进行了大量容错处理与测试。

具有如下特点:1、在log目录下自动建立当前日期命名的文件夹,用于存放导出的配置文件2、在log目录下自动生成当前日期命名的日志文件,记录操作失败的设备3、对于不能成功连接的设备或登录失败的设备,会自动跳过,不影响后续操作,不会卡在中间,不会造成批量操作中断4、首先使用列表中用户名和密码尝试登录,若失败,则尝试使用列表中的用户名和”123456”(可在脚本中自己修改)进行登录脚本运行准备工作:1、首先建立如下目录: d:\h3cbackup\log ,此目录可配合脚本修改成其它目录2、建立list设备列表文件,文件类型为文本文件,每行为1台设备相关信息,用空格分割,如下:IP地址用户名密码192.168.1.1admin123321192.168.1.2root321123―――――――这里是分割线,下面是脚本――――――――――――――复制分割线间的内容到记事本,修改扩展名为py――――# $language = "Python"# $interface = "1.0"#本脚本用途:从一个文件里面自动读取设备IP地址,密码等,自动将设备配置备份import datetimeimport os#获取当前系统日期并格式化日期格式为YYYYMMDDtoday = datetime.date.today()monthStr="{0:02}".format(today.month)dayStr="{0:02}".format(today.day)todayStr=str(today.year)+monthStr+dayStr#打开保存设备管理地址密码列表文件filePath=crt.Dialog.FileOpenDialog("请选择设备列表文件","打开","list.txt","(*.txt)|*.txt")listfile=open(filePath,"r")crt.Screen.Synchronous = True#创建日志文件,记录操作失败设备列表logfile=open("d:\\h3cbackup\\log\\"+todayStr+".txt","w+") #在log目录下自动创建日期命名的文件夹path="d:\\h3cbackup\\log\\"+todayStrif os.path.exists(path)==False:os.mkdir(path)#numSuc记录成功操作个数,numFai记录操作失败个数numSuc=0numFai=0#读出每行,循环操作for line in listfile:#如果遇到只有换行符无内容的行直接跳过if line=="\n":continue#分离每行的参数IP地址用户名密码超级密码params=line.split()#Telnet到这个设备上并判断是否连接成功errcode = 0try:crt.Session.Connect("/TELNET "+params[0]) except ScriptError:errcode = crt.GetLastError()if errcode != 0:#连接失败跳过后续代码进入下次循环logfile.write("连接失败:"+params[0]+"\n")numFai+=1continueelif crt.Session.Connected:r=crt.Screen.WaitForStrings(['login:','Username:'],1)crt.Screen.Send(params[1]+"\r")crt.Screen.WaitForString('Password:',1)if r==1:crt.Screen.Send(params[2]+"\r")if r==2:crt.Screen.Send("123456\r")if crt.Screen.WaitForString(">",2)==False:crt.Screen.WaitForStrings(['login:','Username:'],10)crt.Screen.Send(params[1]+"\r")crt.Screen.Send(params[2]+"\r")#备份目前runing-config配置crt.Session.LogFileName = path+"\\" + params[0] + ".txt"if crt.Session.Logging==False:crt.Session.Log(True)crt.Screen.Send("dis cu\r")while crt.Screen.WaitForString("---- More ----",2):crt.Screen.Send(" ")#备份完成后退出if crt.Screen.WaitForString("return",1):crt.Screen.Send(" ")crt.Session.Disconnect()numSuc+=1else:logfile.write("未知原因:"+params[0]+"\n")numFai+=1logfile.close()crt.Screen.Synchronous = Falsecrt.Dialog.MessageBox("操作完毕\n共:"+str(numSuc)+"个设备操作成功\n共:"+str(numFai)+"个设备操作失败","",64|0)―――――――――这里是分割线――――――――――结束如不是以return 结束,可以自行修改这里的关键字if crt.Screen.WaitForString("return",1):想偷懒的赶紧试试吧附:Crt脚本运行方法,打开CRT软件―〉选择Script-〉选择脚本文件-〉选择设备列表list文件-〉等待运行结束查看结果。

secureCRT VBS脚本语法

secureCRT VBS脚本语法

常用语句:1.CRT命令‘发送命令crt.Screen.Send “whyy@dsl-vty” & chr(13)‘等待字符串出现crt.Screen.WaitForString “Password:”‘等待字符串出现,等待1秒钟crt.Screen.WaitForString (“Password:”,1)‘开启同步crt.Screen.Synchronous = True‘判断指针1秒内不移动,用于确定安全连接可以进行后续代码输入操作DobCursorMoved = crt.Screen.WaitForCursor(1)Loop until bCursorMoved = False‘判定是否已经连接到设备if crt.Session.Connected = true then‘断开连接crt.session.disConnect‘激活窗口用于多tab页面crt.Activate‘连接到指定设备crt.session.Connect(“/telnet ” & b(n))‘延时1秒crt.Sleep 10002.vbScript语句a.文件操作Set fso = CreateObject(“Scripting.FileSystemObject”) ‘创建文件对象Set file1 = fso.OpenTextFile(“c:\test.txt”,1, False) ‘设置文件对象1 只读模式;2 写模式;8 在文件末尾进行写操作objFso.FileExists(“文件路径”) ‘判定文件是否存在,存在返回trus,否则返回falsefile1.AtEndOfStream <> True ‘如果文件末尾无数据返回true,否则返回falseline = file1.ReadLine ‘读取第一行文本数据,并将读取位移动到下一行params = Split (line) ‘分割读取的行数据,用空格符分割file1.Close ‘关闭文件b.系统文档操作‘创建shell对象,对系统特殊文档操作Set objShell = CreateObject(“WScript.Shell”)‘返回”我的文档”的路径给变量szMyDocs,可以动态的返回”我的文档”的路径szMyDocs = objShell.SpecialFolders(“MyDocuments”)‘设置文件路径到变量中szSessionsFile = szMyDocs & “\SessionList.txt”3.知识点(1)判断文件是否存在if Not objFso.FileExists(szSessionsFile) then ‘如果txt文件不存在,就报错并退出subcrt.Dialog.MessageBox “Session list file not found:” & vbcrlf & vbcrlf & szSessionsFile & vbcrlf & vbcrlf & “Create a s ession list file as describ ed in the description of ” & “this script code and then run the script again.”exit subend if(2)容错机制On Error Resume Next ‘后面代码错误会继续执行crt.Session.Connect “/telnet ” & vSe ssionsArray(0)szError = Err.Description ‘将错误表述信息放入变量szError中On Error Goto 0 ‘关闭容错机制(3)判断是否安全连接‘判断是否连接正常if crt.Session.Connected thencrt.Screen.Synchronous = True ‘同步显示‘第一次连接时的安全检测DobCursorMoved = crt.Screen.WaitForCursor(1)Loop until bCursorMoved = False’ 一旦光标在一秒内停止移动,我们就认为他已经安全的连接上了远程设备end if(4)安全关闭连接’ 断开连接crt.session.disconnect’ 等待连接关闭Docrt.Sleep 100Loop While crt.Session.Connected = True ‘每100毫秒判断连接是否断开(5)说明:1.CRT默认tab的index为12.要创建第二个标签页tab,必须使用函数set newtab = objCurrentTab1.Clone()复制标签页为新的tab页面否则报错tab 2 超出index范围rang函数:Set objCurrentTab1 = crt.GetTab(1) ‘创建标签页1objCurrentTab1.session.disConnect ‘断开标签页1的当前连接objCurrentTab1.Activate ‘激活标签页1objCurrentTab1.session.Connect(“/telnet 172.16.205.1” ) ‘标签页1连接设备172.16.205.1set newtab = objCurrentTab1.Clone() ‘复制标签页1到新标签页示例:【示例一】$language = "VBScript"$interface = "1.0"'本脚本示范:自动登录到某台3550交换机设备,自动输入远程登录密码,同时自动进入特权模式'自动输入特权密码,同时运行show version命令Sub Maincrt.Screen.Synchronous = True'通过telnet连接到192.168.1.1crt.Session.Connect "/TELNET 192.168.1.1"crt.Screen.WaitForString "Password:"crt.Screen.Send "cisco" & vbCrcrt.Screen.waitForString ">"crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send "cisco" & vbcrcrt.Screen.waitForString "#"crt.Screen.Send "show version" & vbcrcrt.Screen.waitForString "--More--"crt.Screen.Send " "crt.Screen.Synchronous = FalseEnd Sub【示例二】$language = "VBScript"$interface = "1.0"'本脚本示范:从一个文件里面自动读取设备IP地址,密码等,自动将设备配置备份Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("d:\config.txt",Forreading, False) crt.Screen.Synchronous = TrueDO While file1.AtEndOfStream <> True'读出每行line = file1.ReadLine'分离每行的参数 IP地址密码 En密码params = Split (line)'Telnet到这个设备上crt.Session.Connect "/TELNET " & params(0)'输入telnet密码crt.Screen.WaitForString "Password:"crt.Screen.Send params(1) & vbcr'进特权模式crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params(2) & vbcrcrt.Screen.waitForString "#"'备份目前Startup配置str1 = "copy startup tftp://192.168.1.2/"str1 = str1 & "backup(" & params(0) &")" & ".cfg"crt.Screen.Send str1 & vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcr'备份完成后退出crt.Screen.waitForString "#",3crt.Session.Disconnectloopcrt.Screen.Synchronous = FalseEnd Subconfig.txt文本文件为事先编辑好的格式如:192.168.1.1 cisco cisco192.168.1.254 cisco cisco前面是IP地址,后面是telnet密码,最后是enable密码Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("d:\config.txt",Forreading, False) crt.Screen.Synchronous = TrueDO While file1.AtEndOfStream <> True'读出每行line = file1.ReadLine'分离每行的参数 IP地址密码 En密码params = Split (line)'Telnet到这个设备上crt.Session.Connect "/TELNET " & params(0)'输入telnet密码crt.Screen.WaitForString "Password:"crt.Screen.Send params(1) & vbcr'进特权模式crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params(2) & vbcrcrt.Screen.waitForString "#"'备份目前Startup配置str1 = "copy startup tftp://192.168.1.2/"str1 = str1 & "backup(" & params(0) &")" & ".cfg"crt.Screen.Send str1 & vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcr'备份完成后退出crt.Screen.waitForString "#",3crt.Session.Disconnectloopcrt.Screen.Synchronous = FalseEnd Sub【示例三】批量添加静态arp:Sub MainConst ForReading = 1Dim fso,file,lineset fso = CreateObject("Scripting.FileSystemObject")set file = fso.OpenTextFile("arp.txt",ForReading,False)crt.Screen.Synchronous = TrueDO While file.AtEndOfStream <> Trueline = file.ReadLinecrt.Screen.Send line & vbcrcrt.Sleep 100loopcrt.Screen.Synchronous = FalseEnd Subarp.txt如下:arp static ip 12.1.1.025 mac 00:24:93:01:73:18interface ethernet 0/0/1 arp static ip 12.1.1.026 mac 00:24:93:01:73:19interface ethernet 0/0/1 arp static ip 12.1.1.027 mac 00:24:93:01:73:1a interface ethernet 0/0/1 arp static ip 12.1.1.028 mac 00:24:93:01:73:1b interface ethernet 0/0/1 arp static ip 12.1.1.029 mac 00:24:93:01:73:1c interface ethernet 0/0/1 arp static ip 12.1.1.030 mac 00:24:93:01:73:1d interface ethernet 0/0/1 arp static ip 12.1.1.031 mac 00:24:93:01:73:1e interface ethernet 0/0/1 arp static ip 12.1.1.032 mac 00:24:93:01:73:1f interface ethernet 0/0/1 arp static ip 12.1.1.033 mac 00:24:93:01:73:20interface ethernet 0/0/1 arp static ip 12.1.1.034 mac 00:24:93:01:73:21interface ethernet 0/0/1。

脚本编程实现自动备份网络设备配置文件

脚本编程实现自动备份网络设备配置文件

脚本编程实现自动备份网络设备配置文件作者:杨健等来源:《中小企业管理与科技·上中下旬刊》 2015年第5期杨健李健(天津联通设备维护中心)摘要院网络设备配置文件备份是快速恢复单点故障的重要手段,本文介绍利用终端软件SecureCRT 对脚本的支持,使用VBScript编程实现汇聚层网络设备批量自动备份,降低相关工作量,提高备份效率。

关键词配置文件脚本备份宽带接入服务器(Broadband Remote Access Server,简称BRAS)和汇聚交换机,位于城域网的汇聚层用于为公众用户提供互宽带数据接入(xDSL/FTTx/LAN 等)和无线接入服务(WLAN)。

天津联通部署的用于宽带业务接入的BRAS 和汇聚交换机总数将近300 台,各种设备在运行过程中随时可能发生风险。

因此,网络设备数据备份用于在设备发生单点故障时快速恢复业务,以尽可能地减少用户的感知,降低因设备故障对企业造成损失。

本文介绍一种利用脚本语言操纵终端软件通过TFTP 方式自动备份网络设备配置文件的方法,帮助运维人员减少重复操作,提高工作效率。

1 目前汇聚层设备的备份方式目前,我部门备份设备配置的常用方法是利用TFTP服务器软件接收并保存网络设备的配置文件,然后将所有的配置文件存放到办公服务器上。

下面以备份华为ME60-X8 设备的配置文件为例介绍该方法的实现过程,主要分为部署TFTP 服务、登录跳板机、执行备份操作和存放配置文件四个步骤。

1.1 部署TFTP 服务器软件为了便于检测备份情况,一般脚本和TFTP 服务器应运行在同一台计算机上。

TFTP服务器软件应选择可在Windows 系统下运行的版本。

设定好TFTP 服务器的保存目录,以便正确接收备份文件。

1.2 登录跳板机使用终端软件SecureCRT 登录跳板机,以便可以逐台登录网络设备进行备份。

1.3 执行备份操作登录ME60-X8,在用户视图下,执行“tftp 10.10.10.10 putvrpcfg.zip vrpcfg.zip”命令将配置文件上传的备份服务器(TFTP 服务器软件所在计算机IP 为10.10.10.10)。

基于SecureCRT的网络设备配置批量备份实践

基于SecureCRT的网络设备配置批量备份实践

操作 的网络设 备相关 信息。 由于不同厂商的设
备, 配置语言略有 区别 , 配置文件除了记录设备I P 地址
c a s e’ ’ CI S CO”
外, 还须记录设备品牌 , 最后通过脚本遍历 配置文件,
逐—对每台设备进行操作。 ‘ 配置文件格式 : 设备品牌+ 设备I P
‘ CI S CO x x . X X . x x . x x ‘ H3 C X X . X X . X X . x x
C I S C O ( i p )
c a s e e l s e
‘ 调用对思科设备操作过程
Ms g B o x” 设备类 型未知: ” &p a r a m s ( O 1 &” ! ”
e n d s e l e c t l o o p
‘ 打开保存设备管理地址以及密码的文件
‘ l o g


Di m f s o , il f e l , l i n e , s t r l , p a r a ms
d i r 为日志保存路径

S e t f s o :C r e a t e O b j e c t ( ” S c r i p t i n g . F i l e S y s t e m O b j e e t ” 、

2 01 4 年 ・ 第5 期
栏 目编辑 :罗锦莉 E - ma i l : l u o l 0 2 5 0 0 @1 6 3 c o m
c r t . S c r e e n . S e n d v b c r
c r t . S c r e e n . Wa i t F o r S t r i n g’ ’ b y t e s / s e c ) ”

利用SecureCRT的脚本功能自动定时执行任务

利用SecureCRT的脚本功能自动定时执行任务

SecureCRT是一款仿真终端工具,常用来telnet到路由器或交换机上,它还支持VBscript和Jscript脚本。

下边讲述一种在WINDOWS下利用SecureCRT的脚本功能自动定时执行一些登录到路由器或交换机来执行的任务:1.写好要SecureCRT执行的脚本,可登录执行任何操作。

如se800.vbs,保存在d:\se800下。

内容附在最后。

2.写好启动SecureCRT执行脚本的批处理文件。

如add_cmd.bat,保存在d:\se800下内容如下:d:cd \se800"C:\Program Files\SecureCRT\SecureCRT.EXE" /T /SCRIPT se800.vbs3.在WINDOWS的控制面板的任务计划里增加任务,如在23:30执行add_cmd.bat,大功告成。

====================se800.vbs的内容:====================# $language = "VBScript"# $interface = "1.0"Function my_Date()dim y,m,d,h,mmDim nowDate,mytimenowDate=Now()mytime=time()y=Year(nowDate)m=Month(nowDate)d=Day(nowDate)h=hour(mytime)mm=minute(mytime)my_Date=y & "-" & m & "-" & dEnd FunctionSub mainDim fso, fHost,fCMDbsn,fCMDscs, strLineHost,strLineCommand,strLogfile,strArrayConst ForReading = 1Const Hostip=0Const user=1Const password=2Const superpwd=3Const hostname=0Const NodeType=4Const my_user="jhxsy"Const my_pass="2381654"Const ScriptPath="D:\se800\"Const LogPath="D:\se800\log\"Set fso = CreateObject("Scripting.FileSystemObject")Set fHost = fso.OpenTextFile(ScriptPath& "ip.txt", ForReading, 0) 'Do While fHost.AtEndOfStream <> Truecrt.Screen.Synchronous = TruestrLineHost = Trim(fHost.Readline ) '获取fhost文件中的一行,如192.168.0.9 null password en_pwd BASstrArray=split(strLineHost,vbtab,-1) '按tab将获取的行分割成一个数组strArray[0]=192.168.0.9 .... strArray[4]=BAS strLogfile=LogPath & strArray(hostname)& "-" & my_date() &".txt"crt.Session.LogFileName = strLogfilecrt.Session.Log Truecrt.Session.Connect "/telnet" & " " & strArray(Hostip) & vbcr 'telnet strArray[0] vbcr=回车crt.screen.waitforstring "login:"crt.screen.send my_user & vbcr 'strArray(user) & vbcrcrt.screen.waitforstring "assword:"crt.screen.send my_pass & vbcrIf strArray(NodeType)="BAS" ThenSet fCMDbsn=fso.OpenT extFile(ScriptPath& "cmd.txt", ForReading, 0) '如果是bas 打开cmd.txt文件并按forreading方式读取Do While fCMDbsn.AtEndOfStream <> True '如果没结束strLineCommand=Trim(fCMDbsn.Readline)'获取读取的行Do While strLineCommand="wait"'?不解crt.sleep 5000strLineCommand=Trim(fCMDbsn.Readline)Loopcrt.Screen.WaitforString "#"'等待出现超级权限的提示crt.Screen.Send strLineCommand & vbcr'发送命令Call CheckEnd()LoopSet fCMDbsn=nothingElseSet fCMDscs=fso.OpenT extFile(ScriptPath& "cmdscs.txt", ForReading, 0)Do While fCMDscs.AtEndOfStream <> TruestrLineCommand=Trim(fCMDscs.Readline)crt.Screen.WaitforString ">"crt.Screen.Send strLineCommand & vbcrcrt.Screen.Send "y" & vbcrLoopSet fCMDscs=nothingEnd If'Logout nodecrt.screen.waitforstring "#"'crt.Session.Log Falsecrt.screen.send " exit" & vbcr'Stop log file action'crt.screen.waitforstring "$"'crt.screen.send vbcrcrt.Session.Log False'crt.screen.send vbcrcrt.Session.Disconnectcrt.Screen.Synchronous = FalseLoopSet fso=nothingcrt.quitEnd SubSub CheckEnd()Do Until crt.Screen.WaitForString ("#" , 1)=Truecrt.Screen.Send " "Loopcrt.Screen.Send vbcrExit SubEnd Sub经常遇到需要对一批网络设备进行同一种操作的情况,比如备份,或者查找arp表等,用telnet一个个登上去看确实比较麻烦,于是想到是否有自动化的办法来做,编程序太麻烦改起来不方便,每天都在用securecrt这个软件做telnet客户端,有一次无意间在软件目录下发现一些脚本,原来securecrt也可以用脚本,于是有了下面这个脚本,用来自动登录到设备上去执行某个操作,并把屏幕内容记录到日志文件中供进一步处理。

SecureCRT批量备份不同型号交换机说明及脚本配置

SecureCRT批量备份不同型号交换机说明及脚本配置

shebei.txt为设备IP地址等信息shebei.txt格式如下设备名称登录帐号登录密码超级密码IP 端口Telnet 设备型号XXX交换机123 **** **** 192.168.1.1 23 Telnet 3300在做CRT脚本的时候,不同的设备获取配置文件的命令稍微有些不通,所以这个脚本做了设备型号的判断。

(这个案例是以华为的设备为例,如果网络中存在思科或者中兴等设备可以对脚本稍作修改即可)# $language = "VBScript"# $interface = "1.0"'==========================================================================' NAME: Backup Of IP-MAN' AUTHOR: LiuBin'==========================================================================Sub MainConst DEVICE_FILE_PATH = "shebei.txt"Dim fsoSet fso = CreateObject("Scripting.FileSystemObject")Dim filSet fil = fso.OpenTextFile(DEVICE_FILE_PATH)Dim ipDim nameDim protocolDim lineDim cnxnStringWhile Not fil.AtEndOfStreamline = fil.ReadLinename = Split(line, " ")(0)username =Split(line, " ")(1)password =Split(line, " ")(2)super =Split(line, " ")(3)ip = Split(line, " ")(4)port = Split(line, " ")(5)protocol = Split(line, " ")(6)devicetype = Split(line, " ")(7)Select Case protocolCase "Telnet"cnxnString = "/TELNET " & ip & " "& portEnd Select'Logcrt.Session.LogFileName = "E:\\easy\\备份\\"+name+" "+ip+".log"‘备份的目标地址crt.Session.Log True' Connectcrt.Screen.Synchronous = TrueOn Error Resume Nextcrt.session.Connect cnxnStringIf Err.Number<>0 Thencrt.Session.Log "Connect failed"crt.Screen.Synchronous = Falsecrt.Session.Log Falseelseif devicetype="9306" or devicetype="9303" or devicetype="8505" or devicetype="3928" or devicetype="3528" or devicetype="2300" then‘判断设备型号crt.Screen.WaitForString "Username:"crt.Screen.Send username & vbCrcrt.Screen.WaitForString "Password:"crt.Screen.Send password & vbCrcrt.Screen.WaitForString ">"crt.Screen.Send "super" & vbCrcrt.Screen.WaitForString " Password:"crt.Screen.Send super & vbCrcrt.Screen.WaitForString ">"crt.Screen.Send "dis cu" & chr(13)crt.Screen.Send " "‘这个是发送空格,就是交换机打dis cu的时候需要打空格或者回车才会显示另外一页crt.Screen.Send chr(13)crt.Screen.WaitForString ">"crt.Screen.Send "quit" & chr(13)crt.Screen.Synchronous = Falsecrt.Session.Disconnectcrt.Session.Log Falseelseif devicetype="3300" thencrt.Screen.WaitForString "Username:"crt.Screen.Send username & vbCrcrt.Screen.WaitForString "Password:"crt.Screen.Send password & vbCrcrt.Screen.WaitForString ">"crt.Screen.Send "dis cu" & chr(13)crt.Screen.Send " "crt.Screen.Send chr(13)crt.Screen.WaitForString ">"crt.Screen.Send "quit" & chr(13)crt.Session.Log falsecrt.Session.Disconnect()elseif devicetype="ME60" thencrt.Screen.WaitForString "Password:"crt.Screen.Send password & vbCrcrt.Screen.WaitForString ">"crt.Screen.Send "super" & vbCrcrt.Screen.WaitForString " Password:"crt.Screen.Send super & vbCrcrt.Screen.WaitForString ">"crt.Screen.Send "dis cu" & chr(13)crt.Screen.Send " "crt.Screen.Send chr(13)crt.Screen.WaitForString ">"crt.Screen.Send "quit" & chr(13)crt.Screen.Synchronous = Falseend ifEnd IfWendfil.CloseEnd Sub。

SecureCRT软件实现华为交换机自动备份

SecureCRT软件实现华为交换机自动备份

无需脚本通过SecureCRT软件实现华为交换机全备份首先下载中文版的SecureCRT 5.1 ,中文版更方便操作,没有中文版的也没关系,我会图示例出。

打开SecureCRT 5.1软件,新建一个交换机连接(新建应该会的吧,要是用中文版的很简单的)-----点击这个新建的连接-再点下会话选项如图1-11-1出现会话选项—连接---点击登录脚本,把自动登录勾打上,期望其实解释是指当登入界面出现什么时,所以期望后面的框,这里大家可以根据自身交换机来填,发送:这个后面填命令,例:期望:password: 发送:这里输入密码(当出现password: 时输入对应的密码),如图1-2如果觉得要输入的命令太少了,这也没关系,不过要用脚本了,把登录脚本的勾打上,选择脚本文件。

脚本文件:# $language = "VBScript"# $interface = "1.0"Sub Maincrt.Screen.WaitForString "AAAA"crt.sleep 2000crt.Screen.Send "BBBB" & VbCrcrt.sleep 2000crt.Screen.Send "CCCC" & VbCrEnd Sub将以上脚本文件保存在TXT记事本里,保存vbs格式。

注:脚本中AAAA需根据实际情况输入命令,crt.Screen.WaitForString 这段是指当出现什么命令时BBBB和CCCC根据实际情况输入自已的命令1-2接下来就是选择保存的日志--------点击日志文件------取个交换机名保存即可,在连接上启动记录这里要打个勾。

如图1-31-3OK,这样就可以了,以后双击交换机连接,自动运行命令,里面的内容自动保存。

SecureCRT登录对多台H3C设备进行配置自动备份

SecureCRT登录对多台H3C设备进行配置自动备份

版权说明Copyright ©2006-2007 杭州华三通信技术有限公司及其许可者 版权所有,保留一切权利。

未经本公司书面许可,任何单位和个人不得擅自摘抄、复制本书内容的部分或全部,并不得以任何形式传播。

H3C 、、Aolynk 、、H 3Care 、、TOP G 、、IRF 、NetPilot 、Neocean 、NeoVTL 、SecPro 、SecPoint 、SecEngine 、SecPath 、Comware 、Secware 、Storware 、NQA 、VVG 、V 2G 、V n G 、PSPT 、XGbus 、N-Bus 、TiGem 、InnoVision 、HUASAN 、华三均为杭州华三通信技术有限公司的商标。

对于本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

保密承诺本次服务中获取客户的保密信息仅用于H3C 公司向客户交付涉及H3C 解决方案与产品服务(网络规划、设计、实施、运维、优化)。

未经客户同意,H3C 公司承诺对保密信息不用于其他与客户服务无关的用途,不向任何与客户服务无关的第三方披露。

Any Confidential Information acquired in service will be used by H3C for the solely purpose of providing solutions and products service (networkarchitecture, design, execute, running and maintenance, and optimization). Without the consent of customer, H3C shall not use the ConfidentialInformation in any way that is not related to Customer’s service, or disclose to any third party that is not relevant to Customer’s service.杭州华三通信技术有限公司Un Re gi st er ed使用SecureCRT 登录对多台H3C 设备进行配置自动备份版本建议:SecureCRT 版本用6.2以上版本 使用范围:该文档适用于H3C 网络设备一、 对于采用用户名-密码或用户名-密码-超级密码的情形。

使用 SecureCRT 批处理备份锐捷交换机配置脚本

使用 SecureCRT 批处理备份锐捷交换机配置脚本

使用SecureCRT 批处理备份锐捷交换机配置脚本已测试了SecureCRT 脚本批量执行备份锐捷交换机配置文件的功能。

此脚本可以根据你的需要修改,改成其他功能,希望有需要的同学扩展思路。

使用SecureCRT 批处理备份所有交换机配置的脚本,使用方法:1、在 C 盘新建一个文件夹,命名为SW_bak,打开文件夹,新建一个文本文件swlist.txt,编辑并保存这个文本文件.每行输入4 列分别是:交换机IP 用户名密码enable密码;例如:192.168.11.1 root password password192.168.12.1 root password password(有多少交换机就写多少行)2、新建一个文本文件,将下面的代码(两条分割线内的内容,不包括分割线)复制到文本文件内,保存关闭。

将文本文件重命名为:备份交换机配置批处理.vbs# $language ="VBScript"# $interface = "1.0"'本脚本示范:从一个文件里面自动读取设备IP 地址,密码等,自动将设备配置备份Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("c:\ SW_bak\swlist.txt ",Forreading,False)crt.Screen.Synchronous = TrueDO While file1.AtEndOfStream <> True'读出每行line = file1.ReadLine'分离每行的参数交换机IP 用户名密码enable密码;params = Split (line)crt.session.LogFileName = " c:\ SW_bak\log\20120713\" & params(0) & ".txt"crt.session.Log(true)'Telnet 到这个设备上crt.Session.Connect "/TELNET " & params(0)'输入Username 密码crt.Screen.WaitForString " Username:"crt.Screen.Send params(1) & vbcr'输入telnet 密码crt.Screen.WaitForString "Password:"crt.Screen.Send params(2) & vbcr'进特权模式crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params(3) & vbcrcrt.Screen.waitForString "#"'备份目前runing-config 配置str1 = "show run"crt.Screen.Send str1 & vbcrcrt.Screen.WaitForString " --More-- "crt.Screen.Send " & vbcr " '备份完成后退出crt.Screen.waitForString "!" & vbcrlf & "end"crt.Session.Disconnect loopcrt.Screen.Synchronous = False End Sub复制备份交换机配置批处理.vbs 到c:\ SW_bak\ 文件夹内;3、在c:\ SW_bak\ 文件夹中新建一个log 文件夹,用于保存配置文件。

SecureCRT脚本的批量管理

SecureCRT脚本的批量管理

利用SecureCRT脚本,实现对N台服务器的批量管理SecureCRT是一款终端仿真程序,支持ssh、Telnet和rlogin协议,可以在windows平台通过它对unix、linux进行访问,相比同类软件,它的强大之处就在于支持vbs、js等脚本,利用脚本可实现批量操作,如:获取服务器相关信息、部署软件、修改密码、升级软件、上传/下载、修改文件等等,还能生成excel报表,最大的优点,就是无需在服务器端安装agent,这是其他软件无法与之相媲美的,当初在给工行做项目的时候,在3000多台服务器上部署软件,用的就是SecureCRT脚本。

下面分享一个例子:该脚本用vbs语言编写,脚本会读取iplist文件,通过ssh方式连接服务器,在centos5.5_64bit系统上自动安装lrzsz软件,脚本对目标服务器进行了判断,如已经安装lrzsz软件则退出,否则执行安装程序。

SecureCRT-vbs脚本使用说明一.脚本运行环境1. 需要在客户端安装SecrueCRT软件二.脚本使用方法1.打开SecureCRT,不连接任何会话2.选择脚本菜单----执行,选择你要运行的脚本,如弹出下面的提示,选择接受并保存。

3.脚本执行过程中,最好不要进行其他操作,脚本执行完后会自动退出三.自动安装脚本参数介绍:outputpath = ".\install-log.txt" '输出文件,脚本运行后会自动创建iplistpath = ".\ip.txt" 'ip列表文件,需提前创建,每行有2列,用1个空格作为分隔符,首尾不能有多余的空格或其他字符,iplist格式如下:192.168.0.1 123456192.168.0.2 abcd1234loginuser = "root" '登陆用户productpath = "/usr/local/src" '产品路径,可自行定义Ssh、Main部分都已写成函数,一般情况下无需更改。

secureCRT脚本----vbs语法

secureCRT脚本----vbs语法

secureCRT脚本----vbs语法常用语句:1.CRT命令‘发送命令crt.Screen.Send “whyy@dsl-vty” & chr(13)‘等待字符串出现crt.Screen.WaitForString “Password:”‘等待字符串出现,等待1秒钟crt.Screen.WaitForString (“Password:”,1)‘开启同步crt.Screen.Synchronous = True‘判断指针1秒内不移动,用于确定安全连接可以进行后续代码输入操作DobCursorMoved = crt.Screen.WaitForCursor(1)Loop until bCursorMoved = False‘判定是否已经连接到设备if crt.Session.Connected = true then‘断开连接crt.session.disConnect‘激活窗口用于多tab页面crt.Activate‘连接到指定设备crt.session.Connect(“/telnet ” & b(n))‘延时1秒crt.Sleep 10002.vbScript语句a.文件操作Set fso = CreateObject(“Scripting.FileSystemObject”) ‘创建文件对象Set file1 = fso.OpenTextFile(“c:\test.txt”,1, False) ‘设置文件对象 1 只读模式;2 写模式;8 在文件末尾进行写操作objFso.FileExists(“文件路径”) ‘判定文件是否存在,存在返回trus,否则返回falsefile1.AtEndOfStream <> True ‘如果文件末尾无数据返回true,否则返回falseline = file1.ReadLine ‘读取第一行文本数据,并将读取位移动到下一行params = Split (line) ‘分割读取的行数据,用空格符分割file1.Close ‘关闭文件b.系统文档操作‘创建shell对象,对系统特殊文档操作Set objShell = CreateObject(“WScript.Shell”)‘返回”我的文档”的路径给变量szMyDocs,可以动态的返回”我的文档”的路径szMyDocs = objShell.SpecialFolders(“MyDocuments”)‘设置文件路径到变量中szSessionsFile = szMyDocs & “\SessionList.txt”3.知识点<1.判断文件是否存在if N ot objFso.FileExists(szSessionsFile) then ‘如果txt文件不存在,就报错并退出subcrt.Dialog.MessageBox “Session list file not found:” & vbcrlf & _vbcrlf & _szSessionsFile & vbcrlf & vbcrlf & _“Create a session list file as described in the description of ” & _“this script code and then run the script again.”exit subend if<2.容错机制On Error Resume Next ‘后面代码错误会继续执行crt.Session.Connect “/telnet ” & vSessionsArray(0)szError = Err.Description ‘将错误表述信息放入变量szError中On Error Goto 0 ‘关闭容错机制<3.判断是否安全连接‘判断是否连接正常if crt.Session.Connected thencrt.Screen.Synchronous = True ‘同步显示‘第一次连接时的安全检测DobCursorMoved = crt.Screen.WaitForCursor(1)Loop until bCursorMoved = False’ 一旦光标在一秒内停止移动,我们就认为他已经安全的连接上了远程设备end if<4.安全关闭连接’ 断开连接crt.session.disconnect’ 等待连接关闭Docrt.Sleep 100Loop While crt.Session.Connected = True ‘每100毫秒判断连接是否断开<5.说明:1.CRT默认tab的index为12.要创建第二个标签页tab,必须使用函数set newtab = objCurrentTab1.Clone()复制标签页为新的tab页面否则报错tab 2 超出index范围rang函数:Set objCurrentTab1 = crt.GetTab(1) ‘创建标签页1objCurrentTab1.session.disConnect ‘断开标签页1的当前连接objCurrentTab1.Activate ‘激活标签页1objCurrentTab1.session.Connect(“/telnet 172.16.205.1” ) ‘标签页1连接设备172.16.205.1set newtab = objCurrentTab1.Clone() ‘复制标签页1到新标签页示例:【示例一】$language = "VBScript"$interface = "1.0"'本脚本示范:自动登录到某台3550交换机设备,自动输入远程登录密码,同时自动进入特权模式'自动输入特权密码,同时运行show version命令Sub Maincrt.Screen.Synchronous = True'通过telnet连接到192.168.1.1crt.Session.Connect "/TELNET 192.168.1.1"crt.Screen.WaitForString "Password:"crt.Screen.Send "cisco" & vbCrcrt.Screen.waitForString ">"crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send "cisco" & vbcrcrt.Screen.waitForString "#"crt.Screen.Send "show version" & vbcrcrt.Screen.waitForString "--More--"crt.Screen.Send " "crt.Screen.Synchronous = FalseEnd Sub【示例二】$language = "VBScript"$interface = "1.0"'本脚本示范:从一个文件里面自动读取设备IP地址,密码等,自动将设备配置备份Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("d:\config.txt",Forreading, False) crt.Screen.Synchronous = TrueDO While file1.AtEndOfStream <> True'读出每行line = file1.ReadLine'分离每行的参数 IP地址密码 En密码params = Split (line)'Telnet到这个设备上crt.Session.Connect "/TELNET " & params(0)'输入telnet密码crt.Screen.WaitForString "Password:"crt.Screen.Send params(1) & vbcr'进特权模式crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params(2) & vbcrcrt.Screen.waitForString "#"'备份目前Startup配置str1 = "copy startup tftp://192.168.1.2/"str1 = str1 & "backup(" & params(0) &")" & ".cfg"crt.Screen.Send str1 & vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcr'备份完成后退出crt.Screen.waitForString "#",3crt.Session.Disconnectloopcrt.Screen.Synchronous = FalseEnd Subconfig.txt文本文件为事先编辑好的格式如:192.168.1.1 cisco cisco192.168.1.254 cisco cisco前面是IP地址,后面是telnet密码,最后是enable密码Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("d:\config.txt",Forreading, False) crt.Screen.Synchronous = TrueDO While file1.AtEndOfStream <> True'读出每行line = file1.ReadLine'分离每行的参数 IP地址密码 En密码params = Split (line)'Telnet到这个设备上crt.Session.Connect "/TELNET " & params(0)'输入telnet密码crt.Screen.WaitForString "Password:"crt.Screen.Send params(1) & vbcr'进特权模式crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params(2) & vbcrcrt.Screen.waitForString "#"'备份目前Startup配置str1 = "copy startup tftp://192.168.1.2/"str1 = str1 & "backup(" & params(0) &")" & ".cfg" crt.Screen.Send str1 & vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcr'备份完成后退出crt.Screen.waitForString "#",3crt.Session.Disconnectloopcrt.Screen.Synchronous = FalseEnd Sub【示例三】批量添加静态arp:Sub MainConst ForReading = 1Dim fso,file,lineset fso = CreateObject("Scripting.FileSystemObject")set file = fso.OpenTextFile("arp.txt",ForReading,False)crt.Screen.Synchronous = TrueDO While file.AtEndOfStream <> Trueline = file.ReadLinecrt.Screen.Send line & vbcrcrt.Sleep 100loopcrt.Screen.Synchronous = FalseEnd Subarp.txt如下:arp static ip 12.1.1.025 mac 00:24:93:01:73:18 interface ethernet 0/0/1arp static ip 12.1.1.026 mac 00:24:93:01:73:19 interface ethernet 0/0/1arp static ip 12.1.1.027 mac 00:24:93:01:73:1a interface ethernet 0/0/1arp static ip 12.1.1.028 mac 00:24:93:01:73:1b interface ethernet 0/0/1arp static ip 12.1.1.029 mac 00:24:93:01:73:1c interface ethernet 0/0/1arp static ip 12.1.1.030 mac 00:24:93:01:73:1d interface ethernet 0/0/1arp static ip 12.1.1.031 mac 00:24:93:01:73:1e interface ethernet 0/0/1arp static ip 12.1.1.032 mac 00:24:93:01:73:1f interfaceethernet 0/0/1arp static ip 12.1.1.033 mac 00:24:93:01:73:20 interface ethernet 0/0/1arp static ip 12.1.1.034 mac 00:24:93:01:73:21 interface ethernet 0/0/1。

利用secureCRT脚本对华为交换机进行批量备份

利用secureCRT脚本对华为交换机进行批量备份

利用secureCRT脚本对华为交换机进行批量备份软件:secureCRT 7.0 作者:鲍继川邮箱:bc5367@原理价绍:利用SecrureCRT的脚本对交换机进行批量登录后记录回话即可完成备份。

首先有个交换机所有的ip,用户名,密码。

Su密码文件,用来读取。

比如e:\\easy\\allswip.txt 里面格式如下:192.168.1.10 username1 password1 supassword1192.168.1.11 username2 password2 supassword2中间是空格,以方便读取。

先telent交换机ip登录,依次自动输入username password等等。

然后dis cu 即可完成备份了。

运行效果图如下:选择脚本后执行以下代码:脚本代码如下:# $language = "JScript"# $interface = "1.0"var ForReading = 1, ForWriting = 2;var objTab= crt.GetScriptTab();crt.Screen.Synchronous = true;function main(){var fso, f,f2,tex;fso = new ActiveXObject("Scripting.FileSystemObject");f = fso.OpenTextFile("e:\\easy\\allswip.txt", 1);//读取交换机ip文件e:\\easy\\allswip.txt//var tex=f2.ReadALL();while ( f.AtEndOfStream != true ){ var str,t;str=f.Readline();params=str.split(" ");//依次登录后dis duobjTab.Session.Connect("/telnet " + params[0]);objTab.Screen.WaitForString("Username:");objTab.Screen.Send(params[1]+"\r");objTab.Screen.WaitForString( "Password:");objTab.Screen.Send(params[2] + "\r");objTab.Screen.WaitForString( ">");objTab.Screen.Send ("super 3" + "\r");objTab.Screen.WaitForString( " Password:");objTab.Screen.Send (params[3] + "\r");objTab.Screen.WaitForString( ">");objTab.Screen.Send ("sys" + "\r");objTab.Screen.WaitForString("]");//记录日志,即备份objTab.Session.LogFileName = "E:\\easy\\备份\\"+params[0]+" "+params[1]+".log"; objTab.Session.Log(true);objTab.Screen.Send("dis cu\r");//这里是发送空格哦就是那个什么more 需要的objTab.Screen.Send(" ");objTab.Screen.Send(" ");//objTab.Screen.WaitForString("@",15)objTab.Screen.WaitForString("]");//objTab.Session.Log(false);objTab.Screen.Send("quit\r");//objTab.Screen.WaitForString("]");objTab.Session.Log(false);//objTab.Screen.Send("quit\r");//objTab.Screen.WaitForString(">");//objTab.Screen.Send("save\r");//objTab.Screen.Send("y\r");objTab.Screen.WaitForString("@",2)objTab.Session.Disconnect();}}完成后发现e盘下面有E:\easy\备份这个文件夹里面都是备份的内容了。

SecureCRT脚本(VBS)运行

SecureCRT脚本(VBS)运行

SecureCRT脚本(VBS)运⾏SecureCRT脚本(VBS)运⾏在SecureCRT运⾏脚本,⾃动收发数据监控记录运⾏状态。

参考:⽰例代码:#$language = "VBScript"#$interface = "1.0"'====本脚本说明:================================================='通信测试:'1、新建⽇志⽂件路径修改LOG_FILE_NAME宏定义的地址'2、使⽤Telnet登陆PPC后运⾏脚本,运⾏⼀段时间后错误信息将⾃动存储到1中定义的⽂本⽂件,若⽆则测试通过。

'const LOG_FILE_NAME="z:\secureCrt-log.txt"'================================================================Sub Main'================================================================crt.Screen.Synchronous = True'--------------------------------Dim erro_cerro_c = 1'----------------------------------------------------------------------------------1'loop'crt.Screen.Synchronous = False'crt.Sleep 1000crt.Screen.Send "d 0xfa050100" & chr(13)crt.Sleep 100crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.waitForString "fa050100: 0000 0002 0002 28b0 0000 ffff"crt.Screen.waitForString "value = 21 = 0x15"crt.Sleep 100'----------------------------------------------------------------------------------2'Do'INTIcrt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0049" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "004E" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0054" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0049" & chr(13)crt.Screen.Send "q" & chr(13)Read1RunRecd'Loop'-------------------------------------------Dim var1'定义循环次数var1=5Const Delay1 = 10Do'----------------------------------------------------------------------------------3'53410000crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0080" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0070" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0000" & chr(13)crt.Screen.Send "q" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0060" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0000" & chr(13)crt.Screen.Send "q" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0050" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0000" & chr(13)crt.Screen.Send "q" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0040" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0030" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0000" & chr(13)crt.Screen.Send "q" & chr(13)crt.Sleep Delay1erro_c = Read2(erro_c )crt.Sleep Delay1'--------------------------------------------if var1=1 thenexit doend if'var1=var1-1Loop'crt.Screen.Send "d 0xfa050100" & chr(13)'crt.Sleep 1000crt.Screen.Synchronous = FalseEnd Sub'===================================== Sub Read1crt.Sleep 100crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.waitForString "0049"crt.Screen.waitForString "value = 21 = 0x15"crt.Sleep 500crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.waitForString "004b"crt.Screen.waitForString "value = 21 = 0x15"crt.Sleep 500crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.waitForString "004b"crt.Screen.waitForString "value = 21 = 0x15"crt.Sleep 500End Sub'===================================== Function Read2(e_cnt)Const Delay2 = 100crt.Sleep 300crt.Screen.Send "d 0xfa050100" & chr(13)'crt.Screen.waitForString "0053"If(crt.Screen.WaitForString ("0053",1)<>False) Then 'Msgbox "time yes"crt.Screen.waitForString "value = 21 = 0x15" ElseErroRecd e_cnte_cnt = e_cnt + 1crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.Send "d 0xfa050100" & chr(13)Read2 = e_cntexit function'Msgbox "time out"End Ifcrt.Sleep Delay2crt.Screen.Send "d 0xfa050100" & chr(13)'crt.Screen.waitForString "004b"'crt.Screen.waitForString "value = 21 = 0x15"If(crt.Screen.WaitForString ("004b",1)<>False) Then'Msgbox "time yes"crt.Screen.waitForString "value = 21 = 0x15"ElseErroRecd e_cnte_cnt = e_cnt + 1crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.Send "d 0xfa050100" & chr(13)Read2 = e_cntexit function'Msgbox "time out"End Ifcrt.Sleep Delay2crt.Screen.Send "d 0xfa050100" & chr(13)'crt.Screen.waitForString "004b"'crt.Screen.waitForString "value = 21 = 0x15"If(crt.Screen.WaitForString ("004b",1)<>False) Then'Msgbox "time yes"crt.Screen.waitForString "value = 21 = 0x15"ElseErroRecd e_cnte_cnt = e_cnt + 1crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.Send "d 0xfa050100" & chr(13)Read2 = e_cntexit function'Msgbox "time out"End Ifcrt.Sleep Delay2Read2 = e_cntEnd Function'=====================================Sub ErroRecd(e_cnt)'创建⽂件对象Dim fsoSet fso = CreateObject("Scripting.FileSystemObject")'设置⽂件对象 1 只读模式;2 写模式;8 在⽂件末尾进⾏写操作Set file1 = fso.OpenTextFile(LOG_FILE_NAME,8, False)'file1.WriteLine("Erro"&e_cnt&":"&time)file1.WriteLine("Erro"&e_cnt&":"&date&" | "&time)'---------------------file1.WriteLine("---------st-----------")dim sdim cc=1dos = crt.Screen.Get(c,1,c,100)file1.WriteLine(s)if c=50 thenexit doend ifc=c+1loopfile1.WriteLine("---------end-----------")file1.WriteLine(" ")'---------------------------------------file1.Close '关闭⽂件'Msgbox timeEnd Sub'=======================================Sub RunRecd'创建⽂件对象Dim fsoSet fso = CreateObject("Scripting.FileSystemObject")'设置⽂件对象 1 只读模式;2 写模式;8 在⽂件末尾进⾏写操作Set file1 = fso.OpenTextFile(LOG_FILE_NAME,8, False)'file1.WriteLine("Erro"&e_cnt&":"&time)file1.WriteLine("|=======================================") file1.WriteLine("The vbs started@"&":"&date&" | "&time)'---------------------file1.WriteLine(" ")'---------------------------------------file1.Close '关闭⽂件'Msgbox timeEnd Sub操作步骤:1. 建⽴通信连接2. 运⾏脚本。

利用SecureCRT实现交换机自动登录脚本

利用SecureCRT实现交换机自动登录脚本
crt.Screen.WaitForString( " Password:");
crt.Screen.Send (params[3] + "\r");
crt.Screen.WaitForString( ">");
crt.Screen.Send ("sys" + "\r");
}
}
}
运行效果图:
选择脚本,并执行代码即可。
输入username2即可登录完成。
注:至此已完,我是用来登录华为的交换机的,当然还可以登录中兴的9806H等等,=这样的话可以少敲键盘,也可以在此基础上进行对所有的交换机进行批量备份,批量配置等等。以后会放出。很多secureCRT脚本是用vbs写的,很多我参照并用javascript重写了。作者:鲍继川邮箱:bc5367@多谢指教
192.168.1.11 username2password2supassword2
中间是空格,以方便读取。先输入用户名比如username2后,脚本自动去查找username2,然后自动telnet 192.168.1.11这个ip地址,后自动输入username2,password2,supassword2后输入sys就完了。
crt.Screen.Send(params[1]+"\r");
crt.Screen.WaitForString( "Password:");
crt.Screen.Send(params[2] + "\r");
crt.Screen.WaitForString( ">");

CRT脚本

CRT脚本

CRT脚本1.登录脚本 (1)例: (1)2.自动巡检多个设备,会在crt下开启多个窗口,方便观察每台设备状态 (2)3.批量配置统一模板的接入层交换机 (3)1.登录脚本这个脚本方便用于交换机路由器登陆过程,可自行识别输入,例如若交换机登陆过程中不要求输入用户名,则免去该步骤例:#$language = "VBScript"#$interface = "1.0"crt.Screen.Synchronous = True' This automatically generated script may need to be' edited in order to work correctly.Sub Maincrt.Screen.Send ""&chr(13)if(crt.Screen.WaitForStrings("sername:",2)<>false)Thencrt.Screen.Send "用户名" &chr(13)elsecrt.Screen.Send ""&chr(13)End ifIf(crt.Screen.WaitForStrings("Password:",2)<>false)Thencrt.Screen.Send"密码"&chr(13)elsecrt.Screen.Send "" &chr(13)end ifIf (crt.Screen.WaitForString (">",2)<>false) Thencrt.Screen.Send "en" &chr(13)crt.Screen.WaitForString "Password:"crt.Screen.Send "enable密码" &chr(13)Elsecrt.Screen.Send ""&chr(13)End IfEnd sub2.自动巡检多个设备,会在crt下开启多个窗口,方便观察每台设备状态例:#$language = "VBScript"#$interface = "1.0"crt.Screen.Synchronous = TrueSub MainSet objCurrentTab1 = crt.GetTab(1)objCurrentTab1.session.disConnectobjCurrentTab1.ActivateobjCurrentTab1.session.Connect("/telnet 设备地址")if(objCurrentTab1.Screen.WaitForStrings("Username:", 2)<>Faluse)ThenobjCurrentTab1.Screen.Send "用户名" &chr(13)elseobjCurrentTab1.Screen.Send " " &chr(13)End ifIf(objCurrentTab1.Screen.WaitForStrings("Password:",2)<>Faluse)ThenobjCurrentTab1.Screen.Send"密码"&chr(13)elseobjCurrentTab1.Screen.Send " " &chr(13)end ifIf (objCurrentTab1.Screen.WaitForString (">",3)<>Faluse) ThenobjCurrentTab1.Screen.Send "en" &chr(13)objCurrentTab1.Screen.WaitForString "Password: ",2objCurrentTab1.Screen.Send "enable密码" &chr(13)ElseobjCurrentTab1.Screen.Send " " &chr(13)End IfobjCurrentTab1.Screen.Send "巡检指令" &chr(13)Set newtab = objCurrentTab1.Clone()Set objCurrentTab2 = crt.GetTab(2)objCurrentTab2.session.disConnectobjCurrentTab2.ActivateobjCurrentTab2.session.Connect("/telnet 设备地址")if(objCurrentTab2.Screen.WaitForStrings("Username:", 2)<>Faluse)ThenobjCurrentTab2.Screen.Send "用户名" &chr(13)elseobjCurrentTab2.Screen.Send " " &chr(13)End ifIf(objCurrentTab2.Screen.WaitForStrings("Password:",2)<>Faluse)ThenobjCurrentTab2.Screen.Send"密码"&chr(13)elseobjCurrentTab2.Screen.Send " " &chr(13)end ifIf (objCurrentTab2.Screen.WaitForString (">",3)<>Faluse) ThenobjCurrentTab2.Screen.Send "en" &chr(13)objCurrentTab2.Screen.WaitForString "Password: ",2objCurrentTab2.Screen.Send "enable" &chr(13)ElseobjCurrentTab2.Screen.Send " " &chr(13)End IfobjCurrentTab2.Screen.Send "巡检指令" &chr(13)end sub3.批量配置统一模板的接入层交换机一般大型企业架构新网络时需要着大量的接入层交换机,而配置大批统一样式的接入层交换机是件无聊且繁琐的工作,因此提供一个简易的配置脚本希望能够给大家带来方便。

SecureCRT中使用VBscript实例介绍

SecureCRT中使用VBscript实例介绍
'第一次用 ssh 登录时执行 IF 中的语句
If (Not crt.Screen.WaitForString("assword:",5)) Then crt.Screen.Send "yes" & VbCr crt.Sleep(5)
End If
'输入密码
crt.Screen.send "888888" & VbCr
'开启同步模式
crt.Screen.Synchronous = True
'-----------------------------------------------启动 cs002 实体---------------------------------------------'进入 cs002 的目录
'------------------------------------启动 cs001 进程--------------------------------------------------------
crt.Screen.Send "ssh etuser@192.168.10.10" & VbCr If (Not crt.Screen.WaitForString("assword:",5)) Then
If (Not crt.Screen.WaitForString("assword:",5)) Then crt.Screen.Send "yes" & VbCr crt.Sleep(10)
End If crt.Screen.send "888888" & VbCr crt.Screen.send "cd /home/etuser/sys/IMS009" & VbCr crt.Screen.send "killall imsd" & VbCr crt.Sleep(1) crt.Screen.send "./imsd" & VbCr crt.Sleep(1)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
crt.Screen.Send params(1) & vbcr
'读入登录密码
crt.Screen.WaitForString "Password:"
crt.Screen.Send params(2) & vbcr
crt.Screen.waitForString "#"
crt.session.LogFileName = "D:\SecureCRT\Data\log\" & params(3) & params(4) & params(5) & ".txt"
crt.session.Log(true)
'Telnet到这个设备上,也可以修改为ssh,参数参考crt文档
End Sub
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso,file1,line,str1,params
Set fso = CreateObject("Scripting.FileSystemObject")
Set file1 = fso.OpenTextFile("D:\SecureCRT\Data\scripts\list.txt",Forreading, False)
crt.Screen.Synchronous = True
DO While file1.AtEndOfStream <> True
'读出每行
line = file1.ReadLine
'分离每行的参数 IP地址params(0) 登录用户名params(1),密码params(2),备份文件命名规则params(3)等
params = Split (line)
'备份目前runing-config配置
str1 = "show run"
crt.Screen.Send str1 & vbcr
crt.Screen.WaitForString " --More-- "
crt.Screen.Send " " & vbcr
# $language = "VBScript"
# $interface = "1.0"
'说明:使用crt启动脚本,从文件里面读取设备IP地址、登录用户名、密码等,自动读取sh run导出配置文件并保存(crt记录会话功能)
Sub Main
'打开保存设备管理地址以及密码的文件,list.txt文件格式:IP 用户名 密码 交换机名称(命名规则自行定义,参数之间使用空格)
crt.Session.Connect "/TELNET " & params(0)
'输入telnet用户名,如果未使用3a认证,可以修改为输入两次密码进入特权模式,接收的字符串增加,password、“>”、password
crt.Screen.WaitForString "User Name:"
'备份完成后退出(读到#字符结束,退出"
crt.Session.Disconnect
loop
crt.Screen.Synchronous = False
相关文档
最新文档