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

admin 2024年5月21日09:12:28评论9 views字数 3943阅读13分8秒阅读模式
之前分享过python相关工具,阿然最近又发现一个自动备份工具(bat脚本+SecureCRT+vbs脚本),支持telnet及SSH,配合windows的计划任务,自动备份H3C、华为交换机、路由器,效果还不错,理论上只要能用SecureCRT登录的设备,稍加修改都可以完成采集、备份。
设备信息存放在SWIP_v4.txt里,各字段分别是登录方式、设备名称、IP、用户、密码。
SecureCRT论坛里有很多了,这里就不放出,只放脚本。

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

 

原文始发于微信公众号(释然IT杂谈):网工必备交换机配置自动采集工具 SecureCRT+vbs脚本,支持telnet及SSH

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月21日09:12:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网工必备交换机配置自动采集工具 SecureCRT+vbs脚本,支持telnet及SSHhttps://cn-sec.com/archives/2762213.html

发表评论

匿名网友 填写信息