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

📄 hs_backup.vbs

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