您的当前位置:首页正文

网络交换机配置备份脚本介绍

2020-09-04 来源:好走旅游网


一、脚本介绍

1.本文的自动配置备份脚本是通过BAT脚本自动运行CRT-登录交换机-查看当前配置-记录会话-保存会话的方式实现的。

2.本方法需要把以下4个文件要放置在同一目录下:

(1)配置备份.bat 主要实现统计备份前后文件数量,运行CRT

(2)配置备份.vbs 此脚本实现CRT自动登录交换机,并查看配置记录会话

(3)SWIP.txt 记录交换机IP

(4)swbackup.log 备份日志,备份完成情况会记录到此文件中

二、配置备份.bat脚本

1.命令窗口标题

设置命令窗口名称显示为“配置备份程序〞

echo off

color 0a

title 配置备份程序

1 / 18

2.修改日期格式

::调整时间格式为:14:00:00

set time1=%time:~0,8%

::调整日期格式为:2017-09-01

set y=%date:~0,4%

set m=%date:~5,2%

set d=%date:~8,2%

::调整日期格式,去除日期前面的0,结果为:2017-9-1〔这里只的我的个人需要〕

if %m% == 01 (set m=1)

if %m% == 02 (set m=2)

if %m% == 03 (set m=3)

if %m% == 04 (set m=4)

if %m% == 05 (set m=5)

2 / 18

if %m% == 06 (set m=6)

if %m% == 07 (set m=7)

if %m% == 08 (set m=8)

if %m% == 09 (set m=9)

if %d% == 01 (set d=1)

if %d% == 02 (set d=2)

if %d% == 03 (set d=3)

if %d% == 04 (set d=4)

if %d% == 05 (set d=5)

if %d% == 06 (set d=6)

if %d% == 07 (set d=7)

if %d% == 08 (set d=8)

if %d% == 09 (set d=9)

3 / 18

set date1=%y%-%m%-%d%

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

配置我这里统一保存在E盘-配置备份-日期-目录下

set dir=E:\\配置备份\\%y%-%m%-%d%

3.自动计算需要备份的设备数量,即SWIP.txt文件的行数

set \"file=E:\\FANTAWILD\\配置备份脚本\\SWIP.txt\"

for /f \"delims=\" %%a in (%file%) do set/a rows+=1

4.命令窗口打印显示以下信息

echo.

echo ********************************************

echo 网络设备配置备份

echo ********************************************

echo 备份日期:%date1% %time1%

4 / 18

echo 设备数量:%rows%

echo 备份目录:%dir%

echo ********************************************

5.启动CRT软件,并执行配置备份.vbs脚本

start \"\" \"D:\\Program Files\\SecureCRT-7.0\\App\\VanDyke

Clients\\SecureCRT.exe\" /SCRIPT E:\\FANTAWILD\\配置备份脚本\\配置备份.vbs >nul

6.预计备份时间

:: 通过屡次测试,预计每台设备备份时间为2秒钟〔不同设备收集配置时间可能不一样〕总的时间就是2乘设备数量

set /a rows2=%rows%*2

echo 预计备份时间 %rows2% 秒

7.进度条,纯属为了界面动态美观〔可忽略〕

::echo 正在备份,请稍候

::进度条1

5 / 18

set /p= 正在备份,请稍候set /a a=1

:a

set /a a+=1

set /p=.::for %%a in ( \">\") do (set /p=%%anul)

ping -n 2 127.1>nul

if not %a%==%rows2% goto a

8.备份完成后,完毕CRT进程

taskkill /f /im SecureCRT.exe >nul

echo.

9.统计配置文件数量,即备份完成后备份目录里的文件数量

set n=0

6 / 18

for /f \"delims=\" %%a in ('dir /a-d /b /s \"%dir%\" ') do (

set /a n+=1

)

10.指定备份完成时时间

set time2=%time:~0,8%

11.命令窗口显示

echo ********************************************

echo 备份完成,共 %rows% 台设备,已完成 %n% 台设备

echo 备份完成 %date1% %time2%

echo ********************************************

echo.

12.为了方便查看备份记录,将此次的备份情况另外输出到日志文件

echo.>>swbackup.log

7 / 18

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

13.BAT配置备份完毕

pause

三、配置备份vbs脚本

8 / 18

此脚本是在CRT中使用的,实现CRT自动登录交换机,并收集记录配置信息

1.根本配置

# $language = \"VBScript\"

# $interface = \"1.0\"

2.从一个文件里面自动读取设备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(\"E: \\配置备份脚本\\SWIP.txt\

crt.Screen.Synchronous = True

dtmNowDate = Now()

9 / 18

dtmNowDate = Year(dtmNowDate) & \"-\" & Month(dtmNowDate) & \"-\" & Day(dtmNowDate)

DO While file1.AtEndOfStream <> True

'读出每行

line = file1.ReadLine

'别离每行的参数设备名称、IP地址、用户名、密码,然后创建设备名称为名的txt文本,作为配置记录文件

params = Split(line)

crt.session.LogFileName = \"E:\\配置备份\\\" & dtmNowDate & \"\\\"& params(1) &\".txt\"

call crt.session.Log(False)

call crt.session.Log(True)'开启日志

crt.Screen.Synchronous = True'开启屏幕同步

2.判断设备类型H3C,并开始备份配置〔这里主要进展三种设备备份:H3C、Juniper、Cisco〕

10 / 18

'首先Telnet到这个设备上,params(2)为文件中提取的设备IP

crt.Session.Connect \"/TELNET \" & params(2)

'H3C设备的配置备份

If params(0) = \"h3c\" Then

'自动输入telnet用户名

crt.Screen.WaitForString \"Username:\"

crt.Screen.Send params(3) & vbcr

'自动输入telnet密码

crt.Screen.WaitForString \"Password:\"

crt.Screen.Send params(4) & vbcr

'收集设备运行信息

str1 = \"display environment\"

crt.Screen.Send str1 & vbcr

11 / 18

'收集版本信息

str2 = \"display version\"

crt.Screen.Send str2 & vbcr

'备份h3c配置

str3 = \"dis cu\"

crt.Screen.Send str3 & vbcr

crt.Screen.WaitForString \"More\"

crt.Screen.Send \" '备份完成后退出

crt.Screen.waitForString \"return\"

crt.Session.Disconnect()

end if

2.判断设备类型Juniper,并开始备份配置

12 / 18

\" & vbcr

If params(0) = \"juniper\" Then

'自动输入telnet密码

crt.Screen.WaitForString \"login:\"

crt.Screen.Send params(3) & vbcr

'自动输入telnet密码

crt.Screen.WaitForString \"Password:\"

crt.Screen.Send params(4) & vbcr

'收集设备运行信息

str1 = \"show chassis environment\"

crt.Screen.Send str1 & vbcr

'收集版本信息

str2 = \"show version\"

crt.Screen.Send str2 & vbcr

13 / 18

'备份juniper配置

str3 = \"show configuration | display set\"

crt.Screen.Send str3 & vbcr

crt.Screen.WaitForString \"more\"

crt.Screen.Send \" \" & vbcr

'备份完成后退出

crt.Screen.waitForString \">\"

crt.Session.Disconnect()

end if

3.判断设备类型Cisco,并开始备份配置

'Cisco设备的配置备份

If params(0) = \"cisco\" Then

'输入telnet用户名

14 / 18

crt.Screen.WaitForString \"Username:\"

crt.Screen.Send params(3) & vbcr

'输入telnet密码

crt.Screen.WaitForString \"Password:\"

crt.Screen.Send params(4) & vbcr

'备份juniper配置

str1 = \"show run\"

crt.Screen.Send str1 & vbcr

'crt.Screen.WaitForString \"more\"

crt.Screen.Send \" \" & vbcr

'备份完成后退出

crt.Screen.waitForString \"end\"

crt.Session.Disconnect()

15 / 18

end if

loop

Call crt.Session.Log(False)

crt.Screen.Synchronous = False

End Sub

四、设备IP列表SWIP.txt

里面有要备份配置的设备类型、名称、IP、用户名、密码,如下

示例

类型名称 IP用户名密码

juniper 9F-01 10.10.1.1 admin admin123

h3c 9F-02 10.10.1.2 admin admin123

五、swbackup.log备份日志文件

从“配置备份.bat 〞里产生的备份记录会重定向输出到此文件中

16 / 18

结果如下:

============================================

备份开始 2017-9-01 01:14:20

备份完成 2017-9-01 01:14:28

设 备 数 量: 40

当前备份数量: 40

备 份 目 录: E:\\配置备份\\2017-9-01

============================================

六、“配置备份.bat 〞执行结果展示

17 / 18

18 / 18

因篇幅问题不能全部显示,请点此查看更多更全内容