当前位置:   article > 正文

网工必备交换机配置自动采集工具 SecureCRT+vbs脚本,支持telnet及SSH

交换机脚本生成工具

来源:释然IT杂谈

发现一个自动备份工具(bat脚本+SecureCRT+vbs脚本),支持telnet及SSH,配合windows的计划任务,自动备份H3C、华为交换机、路由器,效果还不错,理论上只要能用SecureCRT登录的设备,稍加修改都可以完成采集、备份。

设备信息存放在SWIP_v4.txt里,各字段分别是登录方式、设备名称、IP、用户、密码。

backup_v4_SSH_TELNET.bat

  1. @echo off
  2. color 0a
  3. title 备份交换机配置
  4.  
  5. rem 调整时间格式为:14:00:00
  6. set time1=%time:~0,8%
  7.  
  8. rem 调整日期格式为:2017-09-01
  9. set y=%date:~0,4%
  10. set m=%date:~5,2%
  11. set d=%date:~8,2%
  12. set date1=%y%-%m%-%d%
  13.  
  14. rem 2.设置配置备份目录路径
  15. set dir=backup_%y%-%m%-%d%
  16.  
  17. rem 3.自动计算需要备份的设备数量,即SWIP.txt文件的行数
  18. set 'file=SWIP_v4.txt'
  19. for /f 'delims=' %%a in (%file%) do set/a rows+=1
  20.  
  21. rem 4.命令窗口打印显示以下信息
  22. echo.
  23. echo ********************************************
  24. echo              网络设备配置备份
  25. echo ********************************************
  26. echo  备份日期:%date1% %time1%
  27. echo  设备数量:%rows% 
  28. echo  备份目录:%dir%
  29. echo ********************************************
  30.  
  31. rem 5.启动CRT软件,并执行配置备份.vbs脚本
  32. start '' 'E:\SecureCRT.exe' /SCRIPT backup_v4_SSH_TELNET.vbs >nul
  33.  
  34. rem 6.预计备份时间
  35. rem  通过多次测试,预计每台设备备份时间为5秒钟(不同设备收集配置时间可能不一样),这个时间乘以要备份的设备数量,就是总时间
  36. set /a rows2=%rows%*5
  37. echo 预计备份时间 %rows2% 秒
  38.  
  39. rem 7.进度条,纯属为了界面动态美观(可忽略)
  40. rem echo  正在备份,请稍候
  41. rem 进度条1
  42. set /p= 正在备份,请稍候<nul
  43. set /a a=1 
  44. :a
  45. set /a a+=1 
  46. set /p=.<nul
  47. rem for %%a in ( '>') do (set /p=%%a<nul &ping-n 2 127.1>nul) 
  48. ping -n 2 127.1>nul
  49. if not %a%==%rows2% goto a
  50.  
  51. rem 8.备份完成后,结束CRT进程
  52. taskkill /f /im SecureCRT.exe >nul
  53. echo.
  54.  
  55.  
  56. rem 9.统计配置文件数量,即备份完成后备份目录里的文件数量
  57. set n=0
  58. for /f 'delims=' %%a in ('dir /a-d /b /s '%dir%' ') do (
  59. set /a n+=1
  60. )
  61.  
  62. rem 10.指定备份完成时时间
  63. set time2=%time:~0,8%
  64.  
  65. rem 11.命令窗口显示
  66. echo ********************************************
  67. echo  备份完成,共 %rows% 台设备,已完成 %n% 台设备
  68. echo  备份完成时间: %date1% %time2%
  69. echo ********************************************
  70. echo.
  71.  
  72. rem 12.为了方便查看备份记录,将此次的备份情况另外输出到日志文件
  73. echo.>>swbackup.log
  74. echo.>>swbackup.log
  75. echo============================================>>swbackup.log
  76. echo  备份开始时间:%date1% %time1%>>swbackup.log
  77. echo  备份完成时间:%date1% %time2%>>swbackup.log
  78. echo  设备  数量:%rows% >>swbackup.log
  79. echo  当前备份数量:%n%>>swbackup.log
  80. echo  备份  目录:%dir%>>swbackup.log
  81. echo============================================>>swbackup.log
  82.  
  83. rem 13.BAT配置备份结束

backup_v4_SSH_TELNET.vbs

  1. # $language = 'VBScript'
  2. # $interface = '1.0'
  3. '从一个文件里面自动读取设备IP地址,用户名,密码,并创建日志文件,为记录配置信息做准备
  4.  
  5. Sub Main
  6.       '打开保存设备管理地址以及密码的文件
  7.       Const ForReading = 1,ForWriting = 2, ForAppending = 8
  8.       Dim fso,file1,line,str1,params
  9.    Set fso =CreateObject('Scripting.FileSystemObject')
  10.       Set file1 =fso.OpenTextFile('SWIP_v4.txt',Forreading,False)
  11.       crt.Screen.Synchronous= True
  12.    mydate = now()
  13.    myYear=Year(mydate)
  14.    myMon=Month(mydate)
  15.    if len(myMon)<2 then myMon='0'&myMon
  16.    myDay=Day(mydate)
  17.    if len(myDay)<2 then myDay='0'&myDay
  18.    
  19.    backupDate = myYear & '-' & myMon & '-' &myDay
  20.       DO While file1.AtEndOfStream <> True
  21.              '读出每行
  22.              line =file1.ReadLine
  23.              '分离每行的参数设备名称、IP地址、用户名、密码,然后创建'设备名称+IP'为名的txt文本,作为配置记录文件
  24.              params =Split(line)
  25.              crt.session.LogFileName= 'backup_' &backupDate & '\'& params(1) &'_' & params(2) &'.txt'
  26.              call crt.session.Log(False)
  27.              call crt.session.Log(True)           '开启日志
  28.              crt.Screen.Synchronous= True '开启屏幕同步
  29.  
  30.   If params(0) ='ssh' Then
  31.   '判断设备登录类型ssh
  32.   '首先ssh到这个设备上,params(2)为文件中提取的设备IP,params(3)为用户名,params(4)为密码
  33.    crt.Session.Connect '/ssh2 /L ' & params(3) &' /PASSWORD ' & params(4) &' ' & params(2)
  34.   
  35.  elseif params(0) ='telnet' Then
  36.   '判断设备登录类型telnet
  37.   '首先telnet到这个设备上,params(2)为文件中提取的设备IP
  38.   crt.Session.Connect'/TELNET ' & params(2)     
  39.   '自动输入telnet用户名
  40.    'crt.Screen.WaitForString'Username:'
  41.                   'crt.Screen.Sendparams(3) & vbcr
  42.    '自动输入telnet密码
  43.     crt.Screen.WaitForString'Password:'
  44.    crt.Screen.Send  params(4) & vbcr 
  45.   crt.Screen.Send  chr(13)
  46.  end if
  47.                      
  48.         '收集设备运行信息
  49.         str1 ='display environment' & vbcr
  50.         crt.Screen.Send str1 
  51.   
  52.         '收集版本信息
  53.         str2 ='display version'
  54.         crt.Screen.Send str2 & vbcr 
  55.         crt.Screen.Send  ' ' & chr(13)
  56.         'crt.Screen.WaitForString'More'
  57.         'crt.Screen.Send  '                           ' & vbcr
  58.         '备份h3c配置
  59.         str3 ='dis cu'
  60.         crt.Screen.Send str3 & vbcr
  61.         crt.Screen.WaitForString'More'
  62.         crt.Screen.Send  '                                 ' & vbcr
  63.         '备份完成后退出
  64.         crt.Screen.waitForString'return'
  65.         crt.Session.Disconnect()
  66.    
  67.       loop
  68.       Call crt.Session.Log(False)
  69.       crt.Screen.Synchronous= False
  70. End Sub

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。

期待您的一键三连支持(点赞、在看、分享~)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/963419
推荐阅读
相关标签
  

闽ICP备14008679号