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

来源:释然IT杂谈

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

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

backup_v4_SSH_TELNET.bat

@echo off
color 0a
title 备份交换机配置
 
rem 调整时间格式为:14:00:00
set time1=%time:~0,8%
 
rem 调整日期格式为:2017-09-01
set y=%date:~0,4%
set m=%date:~5,2%
set d=%date:~8,2%
set date1=%y%-%m%-%d%

 
rem 2.设置配置备份目录路径

set dir=backup_%y%-%m%-%d%
 
rem 3.自动计算需要备份的设备数量,即SWIP.txt文件的行数
set 'file=SWIP_v4.txt'
for /f 'delims=' %%a in (%file%) do set/a rows+=1
 
rem 4.命令窗口打印显示以下信息
echo.
echo ********************************************
echo              网络设备配置备份
echo ********************************************
echo  备份日期:%date1% %time1%
echo  设备数量:%rows% 
echo  备份目录:%dir%
echo ********************************************
 
rem 5.启动CRT软件,并执行配置备份.vbs脚本
start '' 'E:\SecureCRT.exe' /SCRIPT backup_v4_SSH_TELNET.vbs >nul
 
rem 6.预计备份时间
rem  通过多次测试,预计每台设备备份时间为5秒钟(不同设备收集配置时间可能不一样),这个时间乘以要备份的设备数量,就是总时间
set /a rows2=%rows%*5
echo 预计备份时间 %rows2% 秒
 
rem 7.进度条,纯属为了界面动态美观(可忽略)
rem echo  正在备份,请稍候
rem 进度条1
set /p= 正在备份,请稍候<nul
set /a a=1 
:a
set /a a+=1 
set /p=.<nul
rem for %%a in ( '>') do (set /p=%%a<nul &ping-n 2 127.1>nul) 
ping -n 2 127.1>nul
if not %a%==%rows2% goto a
 
rem 8.备份完成后,结束CRT进程
taskkill /f /im SecureCRT.exe >nul
echo.
 
 
rem 9.统计配置文件数量,即备份完成后备份目录里的文件数量
set n=0
for /f 'delims=' %%a in ('dir /a-d /b /s '%dir%' ') do (

set /a n+=1
)
 
rem 10.指定备份完成时时间
set time2=%time:~0,8%
 
rem 11.命令窗口显示
echo ********************************************
echo  备份完成,共 %rows% 台设备,已完成 %n% 台设备
echo  备份完成时间: %date1% %time2%
echo ********************************************
echo.
 
rem 12.为了方便查看备份记录,将此次的备份情况另外输出到日志文件
echo.>>swbackup.log
echo.>>swbackup.log
echo============================================>>swbackup.log
echo  备份开始时间:%date1% %time1%>>swbackup.log
echo  备份完成时间:%date1% %time2%>>swbackup.log
echo  设备  数量:%rows% >>swbackup.log
echo  当前备份数量:%n%>>swbackup.log
echo  备份  目录:%dir%>>swbackup.log
echo============================================>>swbackup.log
 
rem 13.BAT配置备份结束

backup_v4_SSH_TELNET.vbs

# $language = 'VBScript'
# $interface = '1.0'

'从一个文件里面自动读取设备IP地址,用户名,密码,并创建日志文件,为记录配置信息做准备
 
Sub Main
      '打开保存设备管理地址以及密码的文件
      Const ForReading = 1,ForWriting = 2, ForAppending = 8
      Dim fso,file1,line,str1,params
   Set fso =CreateObject('Scripting.FileSystemObject')
      Set file1 =fso.OpenTextFile('SWIP_v4.txt',Forreading,False)
      crt.Screen.Synchronous= True
   mydate = now()
   myYear=Year(mydate)
   myMon=Month(mydate)
   if len(myMon)<2 then myMon='0'&myMon
   myDay=Day(mydate)
   if len(myDay)<2 then myDay='0'&myDay
   
   backupDate = myYear & '-' & myMon & '-' &myDay
      DO While file1.AtEndOfStream <> True
             '读出每行
             line =file1.ReadLine
             '分离每行的参数设备名称、IP地址、用户名、密码,然后创建'设备名称+IP'为名的txt文本,作为配置记录文件
             params =Split(line)
             crt.session.LogFileName= 'backup_' &backupDate & '\'& params(1) &'_' & params(2) &'.txt'
             call crt.session.Log(False)
             call crt.session.Log(True)           '开启日志
             crt.Screen.Synchronous= True '开启屏幕同步
 
  If params(0) ='ssh' Then
  '判断设备登录类型ssh
  '首先ssh到这个设备上,params(2)为文件中提取的设备IP,params(3)为用户名,params(4)为密码
   crt.Session.Connect '/ssh2 /L ' & params(3) &' /PASSWORD ' & params(4) &' ' & params(2)
  
 elseif params(0) ='telnet' Then
  '判断设备登录类型telnet
  '首先telnet到这个设备上,params(2)为文件中提取的设备IP
  crt.Session.Connect'/TELNET ' & params(2)     
  '自动输入telnet用户名
   'crt.Screen.WaitForString'Username:'
                  'crt.Screen.Sendparams(3) & vbcr
   '自动输入telnet密码
    crt.Screen.WaitForString'Password:'
   crt.Screen.Send  params(4) & vbcr 
  crt.Screen.Send  chr(13)
 end if
                     
        '收集设备运行信息
        str1 ='display environment' & vbcr
        crt.Screen.Send str1 
  
        '收集版本信息
        str2 ='display version'
        crt.Screen.Send str2 & vbcr 
        crt.Screen.Send  ' ' & chr(13)
        'crt.Screen.WaitForString'More'
        'crt.Screen.Send  '                           ' & vbcr
        '备份h3c配置
        str3 ='dis cu'
        crt.Screen.Send str3 & vbcr
        crt.Screen.WaitForString'More'
        crt.Screen.Send  '                                 ' & vbcr
        '备份完成后退出
        crt.Screen.waitForString'return'
        crt.Session.Disconnect()
   
      loop
      Call crt.Session.Log(False)
      crt.Screen.Synchronous= False
End Sub

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SecureCRT是一款用于远程访问和管理网络设备的工具VBS脚本SecureCRT中用于自动化任务的一种脚本语言。通过编写VBS脚本,可以实现自动登录到设备、执行命令、收集输出等一系列操作。VBS脚本语法可以参考SecureCRT官方提供的文档,如SecureCRT VBS脚本语法.doc、SecureCRT使用进阶篇.doc、SecureCRT脚本对象详解.doc等。在编写VBS脚本时,可以使用SecureCRT提供的脚本对象和方法,如crt.Screen.Send、crt.Screen.WaitForString等。这些方法可以用于发送命令、等待特定字符或字符串出现等操作,以实现自动化的任务。如果想要批量添加静态arp,可以使用VBS脚本编写一个循环,读取arp.txt文件,逐行发送命令来实现。具体的示例可以参考示例三中的代码。通过编写VBS脚本,可以提高工作效率和减少人为操作的错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [secureCRT脚本----vbs语法](https://blog.csdn.net/sun172270102/article/details/52759666)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [SecureCRT脚本参考文档大合集](https://download.csdn.net/download/xiaoyaoyixian/10592053)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值