⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hs_backup.vbs

📁 解决交换机自动定期备份配置的脚本。支持华为和思科系列
💻 VBS
📖 第 1 页 / 共 4 页
字号:

'=============================================================================
'获取交换机的需备份的文件名 
'参数:  
'    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 + -