📄 hs_backup.vbs
字号:
'=============================================================================
'获取交换机的需备份的文件名
'参数:
' sScrLineText 字符串 一行包含备份的文件名的文本,行尾包含的是具体的文件名
'=============================================================================
Function myGetFileNameFunc(sScrLineText)
Dim iLen,iIndex,iLength
Dim sResultText
sScrLineText = trim(sScrLineText) '去掉空格
iLen = len(sScrLineText)
iIndex = InStrRev(sScrLineText," ")
iLength = iLen - iIndex
sResultText = Mid(sScrLineText,iIndex+1,iLength)
myGetFileNameFunc = sResultText
End Function
'=============================================================================
'提示用户正确的命令行用法
'参数:
' 无
'
'=============================================================================
Sub argumentsPromptSub
Dim sArgmentsPrompt
sArgmentsPrompt="请检查你输入的参数.总数应该为5个." & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ " " & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "1./script '运行的脚本文件'" & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "2./arg '本次需要处理的IP列表的配置文本文件'" & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "3./arg 'TFTP服务器IP地址'" & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "4./arg '第一次建立telnet事务环境的IP地址,一般为本机127.0.0.1’" & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "5./arg 'telnet登录用户名’" & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "6./arg 'telnet登录用户密码’" & vbcrlf
myMessageBoxSub "执行参数输入错误提示:",sArgmentsPrompt,16
End Sub
'=============================================================================
' 处理telnet到宿主机的连接
'参数:
' sHostServerIP 字符串 宿主机地址
' sHostUser 字符串 登录用户名
' sHostPass 字符串 登录用户帐号
'=============================================================================
Sub tryConnectToHostMachineSub(sHostServerIP,sHostUser,sHostPass)
Dim sTelnetComand
On Error Resume Next
sTelnetComand ="/telnet"&" "&sHostServerIP&" "&"23"
crt.session.Connect(sTelnetComand) '连接目的主机
'处理跳板主机IP连接
crt.Screen.WaitForString ":",5 '
crt.Screen.Send "y" & VbCr '发送确认
'如果telnet 127.0.0.1 需要帐号和口令的话,请去掉下面4行的注释。
'crt.Screen.WaitForString "ogin:" '
'crt.Screen.Send sHostUser & VbCr '发送用户名
'crt.Screen.WaitForString "assword:"
'crt.Screen.Send sHostPass & VbCr '发送帐号
crt.Screen.WaitForString ">", 5 '定位输出状态>,表明已经登录成功
End Sub
'=============================================================================
'处理结束telnet到宿主机的连接
'参数:
' 无
'
'=============================================================================
Sub tryDisConnectedFromHostMachineSub()
crt.Screen.WaitForString ">", 3
crt.Screen.Send "exit" & VbCr '结束当前跳板的连接
End Sub
'=============================================================================
'任务文件单行的输出,DEBUG时用
'参数:
' ...
'=============================================================================
sub myDebugProcessTelnetForIP(sTftpServerIP,sMyLogFilePath,sSwicthFactory,sSwitchManageIP,sLoginAccountIsRequer,sLoginKey,sLoginValue,sLoginPassIsRequer,sLoginPassKey,sLoginPassValue,sLocalPassIsRequer,sLocalPassKey,sLocalPassValue,sBackupAll,sConfigFileName)
Dim sArgmentsPrompt
sArgmentsPrompt= "1 ." & sTftpServerIP & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "2 ." +sMyLogFilePath & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "3 ." +sSwicthFactory& vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "4 ." +sSwitchManageIP & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "5 ." +sLoginAccountIsRequer& vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "6 ." +sLoginKey & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "7 ." +sLoginValue& vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "8 ." +sLoginPassIsRequer & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "9 ." +sLoginPassKey& vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "10." +sLoginPassValue & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "11." +sLocalPassIsRequer& vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "12." +sLocalPassKey & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "13." +sLocalPassValue& vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "14." +sBackupAll & vbcrlf
sArgmentsPrompt=sArgmentsPrompt+ "15." +sConfigFileName& vbcrlf
myMessageBoxSub "当前行参数提示:",sArgmentsPrompt,16
End Sub
'=============================================================================
'处理 huawei交换机所有文件的TFTP任务
'参数:
' rowsBegin 数值型 窗口输出开始行数
' rowsEnd 数值型 窗口输出结束行数
' sTftpServerIP 字符串 Tftp服务器地址
' sSwitchManageIP 字符串 交换机网管IP
' ...
'=============================================================================
Sub ProcessTftpS_cisco_Sub(rowsBegin,rowsEnd,sTftpServerIP,sSwitchManageIP)
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 >47 Then
sFileName = myGetFileNameFunc(Lines)
'copy running-config tftp://10.6.0.25/running-config
sTftpCommand ="copy " & sFileName & " tftp://"& sTftpServerIP &"/"& sSwitchManageIP & "_" &myDateNowFun()&"_"& sFileName
crt.Screen.Send sTftpCommand& VbCr
'格式形如
'copy running-config tftp://10.6.0.250/20071005185952_221.12.112.5_running-config
crt.screen.WaitForString "]?"
crt.Screen.Send VbCr
crt.screen.WaitForString "]?"
crt.Screen.Send VbCr
End IF
i = i - 1
Loop
'缺省备份配置文件
'copy running-config tftp://10.6.0.250/20071005185952_221.12.112.5_running-config
crt.Screen.Send "copy " & "running-config" & " tftp://"& sTftpServerIP &"/"& sSwitchManageIP & "_" &myDateNowFun()&"_"& "running-config" & VbCr '单一备份
crt.screen.WaitForString "]?"
crt.Screen.Send VbCr
crt.screen.WaitForString "]?"
crt.Screen.Send VbCr
end Sub
'=============================================================================
'处理 huawei交换机所有文件的TFTP任务
'参数:
' rowsBegin 数值型 窗口输出开始行数
' rowsEnd 数值型 窗口输出结束行数
' sTftpServerIP 字符串 Tftp服务器地址
' sSwitchManageIP 字符串 交换机网管IP
' ...
'=============================================================================
Sub ProcessTftpS_huawei_Sub(rowsBegin,rowsEnd,sTftpServerIP,sSwitchManageIP)
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 put " & sFileName & " //"& sTftpServerIP &"/"& sSwitchManageIP & "_" &myDateNowFun()&"_"& sFileName
crt.Screen.Send sTftpCommand& VbCr
'格式形如
'tftp put vrpcfg.txt //10.6.0.250/20071005185936_10.6.0.20_vrpcfg.txt
End IF
i = i - 1
Loop
end Sub
'=============================================================================
'处理 huawei交换机所有文件的TFTP任务
'参数:
' rowsBegin 数值型 窗口输出开始行数
' rowsEnd 数值型 窗口输出结束行数
' sTftpServerIP 字符串 Tftp服务器地址
' sSwitchManageIP 字符串 交换机网管IP
' ...
'=============================================================================
Sub ProcessTftpS_huawei_Sub_3928(rowsBegin,rowsEnd,sTftpServerIP,sSwitchManageIP)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -