📄 hs_backup.vbs
字号:
Dim i,j
Dim Lines
Dim iLength
Dim sFileName
Dim sTftpCommand
On Error Resume Next
i = rowsEnd '华为的输出格式,其它的交换机请自行适当增加或减少行数
j = rowsBegin
Do While i > j
Lines =crt.Screen.Get(i,1,i,200) '得到第i行文本
Lines =trim(Lines)
iLength =len(Lines)
If iLength >62 Then
sFileName = myGetFileNameFunc(Lines)
sTftpCommand ="tftp "&sTftpServerIP &" put "&sFileName&" " &sSwitchManageIP & "_" &myDateNowFun()&"_"& sFileName
crt.Screen.Send sTftpCommand& VbCr
'格式形如
'tftp 10.6.0.250 put vrpcfg.cfg 10.6.3.13_vrpcfg.cfg
End IF
i = i - 1
Loop
end Sub
Function ProcessTelnetForIP_huawei_Func(sTftpServerIP,sMyLogFilePath,sSwicthType,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName)
Select Case True
Case sSwicthType="2403"
ProcessTelnetForIP_huawei_Func_2403 sTftpServerIP,sMyLogFilePath,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName
Case sSwicthType="3026"
ProcessTelnetForIP_huawei_Func_2403 sTftpServerIP,sMyLogFilePath,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName
Case sSwicthType="3050"
ProcessTelnetForIP_huawei_Func_2403 sTftpServerIP,sMyLogFilePath,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName
Case sSwicthType="3928"
ProcessTelnetForIP_huawei_Func_3928 sTftpServerIP,sMyLogFilePath,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName
Case sSwicthType="8505"
ProcessTelnetForIP_huawei_Func_3928 sTftpServerIP,sMyLogFilePath,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName
Case sSwicthType="8512"
ProcessTelnetForIP_huawei_Func_3928 sTftpServerIP,sMyLogFilePath,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName
End Select
End Function
'=============================================================================
'处理单一交换机 huawei交换机
'参数:
'
' sTftpServerIP 字符串 Tftp服务器地址
' sMyLogFilePath 字符串 自定义处理结果文件名
' ...
'=============================================================================
Function ProcessTelnetForIP_huawei_Func_3928(sTftpServerIP,sMyLogFilePath,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName)
Dim rowsBegin,rowsEnd
Dim LineS
On Error Resume Next
ProcessTelnetForIP_huawei = 0
crt.window.Caption = sSwitchManageIP '显示标题中目前处理的交换机网管地址
crt.Screen.Send "telnet " & sSwitchManageIP & " " & vbCR '尝试登录到主机
If Err.Number< 0 Then
myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"失败"
Exit Function
End IF
If sLoginAccountIsRequer ="T" or sLoginAccountIsRequer="t" Then '处理用户帐号提示
If crt.screen.WaitForString(sLoginKey, 30) = False Then
ProcessTelnetForIP_huawei_Func = 1
'myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"失败" '登记登录失败到日志,以备查看
Exit Function '超时处理,该IP交换机访问失败则跳过
Else
crt.Screen.Send sLoginValue& VbCr '发送登录用户名
End if
End if
If sLoginPassIsRequer ="T" or sLoginPassIsRequer="t" Then '处理用户口令提示
If crt.screen.WaitForString(sLoginPassKey, 10) = False Then
ProcessTelnetForIP_huawei_Func = 2
myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"失败" '登记登录失败到日志,以备查看
Exit Function '超时处理,该IP交换机访问失败则跳过
Else
crt.Screen.Send sLoginPassValue & VbCr '发送登录用户口令
End if
End if
crt.Screen.WaitForString ">"
myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"成功"
rowsBegin = crt.Screen.CurrentRow '获取开始行号
crt.Screen.Send "dir" & VbCr '显示文件列表
crt.Screen.WaitForString ">"
rowsEnd = crt.Screen.CurrentRow '获取结束行号
If sBackupAll="T" or sBackupAll="t" Then '全部备份
ProcessTftpS_huawei_Sub_3928 rowsBegin,rowsEnd,sTftpServerIP,sSwitchManageIP
Else
'tftp 10.6.0.250 put vrpcfg.cfg 10.6.3.13_vrpcfg.cfg
crt.Screen.Send "tftp "&sTftpServerIP &" put "&sConfigFileName&" " &sSwitchManageIP & "_" &myDateNowFun()&"_"& sConfigFileName & VbCr
End If
crt.Screen.WaitForString ">"
crt.Screen.Send "quit" & VbCr '结束本次登录事务
End Function
'=============================================================================
'处理单一交换机 huawei交换机
'参数:
'
' sTftpServerIP 字符串 Tftp服务器地址
' sMyLogFilePath 字符串 自定义处理结果文件名
' ...
'=============================================================================
Function ProcessTelnetForIP_huawei_Func_2403(sTftpServerIP,sMyLogFilePath,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName)
Dim rowsBegin,rowsEnd
Dim LineS
On Error Resume Next
ProcessTelnetForIP_huawei = 0
crt.window.Caption = sSwitchManageIP '显示标题中目前处理的交换机网管地址
crt.Screen.Send "telnet " & sSwitchManageIP & " " & vbCR '尝试登录到主机
If Err.Number< 0 Then
myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"失败"
Exit Function
End IF
If sLoginAccountIsRequer ="T" or sLoginAccountIsRequer="t" Then '处理用户帐号提示
If crt.screen.WaitForString(sLoginKey, 30) = False Then
ProcessTelnetForIP_huawei_Func = 1
'myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"失败" '登记登录失败到日志,以备查看
Exit Function '超时处理,该IP交换机访问失败则跳过
Else
crt.Screen.Send sLoginValue& VbCr '发送登录用户名
End if
End if
If sLoginPassIsRequer ="T" or sLoginPassIsRequer="t" Then '处理用户口令提示
If crt.screen.WaitForString(sLoginPassKey, 10) = False Then
ProcessTelnetForIP_huawei_Func = 2
myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"失败" '登记登录失败到日志,以备查看
Exit Function '超时处理,该IP交换机访问失败则跳过
Else
crt.Screen.Send sLoginPassValue & VbCr '发送登录用户口令
End if
End if
crt.Screen.WaitForString ">"
myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"成功"
rowsBegin = crt.Screen.CurrentRow '获取开始行号
crt.Screen.Send "dir" & VbCr '显示文件列表
crt.Screen.WaitForString ">"
rowsEnd = crt.Screen.CurrentRow '获取结束行号
crt.Screen.Send "sys " & VbCr '进入特权模式
If sLocalPassIsRequer ="T" or sLocalPassIsRequer="t" Then '处理特权用户口令
If crt.screen.WaitForString(sLocalPassKey, 10) = False Then
ProcessTelnetForIP_huawei_Func = 3
myLogSub sMyLogFilePath, "进入特权模式 "&sSwitchManageIP&"失败" '登记登录失败到日志,以备查看
'Exit Function '说明条件错误,无需帐号,直接顺序执行
Else
crt.Screen.Send sLocalPassValue & VbCr '发送登录用户口令
End if
End if
myLogSub sMyLogFilePath, "进入特权模式 "&sSwitchManageIP&"成功"
If sBackupAll="T" or sBackupAll="t" Then '全部备份
ProcessTftpS_huawei_Sub rowsBegin,rowsEnd,sTftpServerIP,sSwitchManageIP
Else
'tftp put vrpcfg.txt //10.6.0.250/20071005185936_10.6.0.20_vrpcfg.txt
crt.Screen.Send "tftp put " & sConfigFileName & " //"& sTftpServerIP &"/"&sSwitchManageIP & "_" &myDateNowFun()&"_"& sConfigFileName & VbCr '单一备份
End If
crt.Screen.WaitForString "]"
crt.Screen.Send "quit" & VbCr '退出特权模式
crt.Screen.WaitForString ">"
crt.Screen.Send "quit" & VbCr '结束本次登录事务
End Function
'=============================================================================
'处理单一交换机 cisco交换机
'参数:
'
' sTftpServerIP 字符串 Tftp服务器地址
' sMyLogFilePath 字符串 自定义处理结果文件名
' ...
'=============================================================================
Function ProcessTelnetForIP_cisco_Func(sTftpServerIP,sMyLogFilePath,sSwicthType,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName)
Dim rowsBegin,rowsEnd
Dim LineS
On Error Resume Next
ProcessTelnetForIP_huawei = 0
crt.window.Caption = sSwitchManageIP '显示标题中目前处理的交换机网管地址
crt.Screen.Send "telnet " & sSwitchManageIP & " " & vbCR '尝试登录到主机
If sLoginAccountIsRequer ="T" or sLoginAccountIsRequer="t" Then '处理用户帐号提示
If crt.screen.WaitForString(sLoginKey, 30) = False Then
ProcessTelnetForIP_cisco_Func = 1
myLogSub sMyLogFilePath, "telnet"&sSwitchManageIP&"失败" '登记登录失败到日志,以备查看
Exit Function '超时处理,该IP交换机访问失败则跳过
Else
crt.Screen.Send sLoginValue& VbCr '发送登录用户名
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -