使用python脚本Telnet 华为交换机备份配置

1、在备份配置之前进行ping操作,所有IP地址放在HW_IP_List.txt中,ping通的地址放到HW_IP_True.txt中,ping不通的地址放到HW_IP_False.txt中。

脚本文件icmp_reply.py

#!/usr/bin/python

# -*- coding:gb2312 -*-

#import tab

import time,os

start_time = int (time.time())

def hw_ping_test():

ips = open(‘HW_IP_List.txt‘,‘r‘)

ip_True = open(‘HW_IP_True.txt‘,‘w‘)

ip_False = open(‘HW_IP_False.txt‘,‘w‘)

count_True,count_False=0,0

for ip in ips.readlines():

ip = ip.replace(‘\n‘,‘‘)

return1= os.system(‘ping -n 1 -w 1 %s‘%ip)

if return1 :

print ‘ping %s is fail‘%ip

ip_False.write(ip+‘\n‘)

count_False += 1

else:

print ‘ping %s is ok‘%ip

ip_True.write(ip+‘\n‘)

count_True += 1

ip_True.close()

ip_False.close()

ips.close()

end_Time = int(time.time())

print "time(sencond):",end_Time - start_time,"s"

print "ping OK IP:",count_True,"   ping False IP:",count_False

hw_ping_test()

2、编辑核心脚本,调用icmp_reply.py,程序执行时会先自动运行icmp_reply.py,调用生成的HW_IP_True.txt文件,先要选择设备类型,然后选择执行的动作,输入TFTP服务器地址,程序就开始执行选择的相应的动作。

#!/usr/bin/python

#coding=utf-8

import telnetlib

import time

import re

import icmp_reply

LogTime = time.strftime(‘%Y-%m-%d_%H-%M-%S‘)

Device = raw_input(‘‘‘Please Select Device

1:HuaWei;

2:HillStone(E1700/M3108);

3:H3C-3620;

Put Device ID:‘‘‘)                        #选择设备类型,华为,山石和H3C-3620

if Device == ‘1‘:                                        #华为相关

action = raw_input(‘‘‘Please Select Action :

1:Config & Backup;

2:Backup;

Put Your Choose:‘‘‘)                             #选择要做的动作,备份or 配置+备份

tftp = raw_input(‘Please Enter TFTP Sever IP:‘)

for line in open("HW_IP_True.txt"):

Host = line.replace(‘\n‘,‘‘)

UserName = ‘admin‘

PassWord = ‘passw0rd‘

save = ‘save‘

display = ‘display cur‘

try:

tn = telnetlib.Telnet(Host)

tn.read_until(‘Username:‘)

tn.write(UserName+‘\n‘)

tn.read_until(‘Password:‘)

tn.write(PassWord+‘\n‘)

if action == ‘1‘ :

config = open("hw_script.txt",‘r‘)

for conf in config.readlines():                  #配置脚本

tn.write(conf+‘\n‘)

tn.write(b‘\n‘)

telreply = tn.expect([],timeout=1)[2].encode("utf-8")      #获取Telnet交互信息

DeviceName = (re.findall(str(".*<(.*)>.*"),telreply))[0]    #生成的设备名称是个list。后面调用列表里面的索引0

tn.write(save+‘ ‘+DeviceName+‘-‘+LogTime+‘.cfg‘+‘\n‘)  #保存当前配置

tn.read_until(‘N]‘)

tn.write(‘y‘+‘\n‘)

tn.read_until(‘successfully.‘)

tn.write(‘tftp‘+‘ ‘+tftp+‘ ‘+‘put‘+‘ ‘+‘flash:/‘+DeviceName+‘-‘+LogTime+‘.cfg‘+‘\n‘ )  #使用tftp导出系统配置

time.sleep(2)

tn.write(‘quit‘+‘\n‘)

tn.close()

elif action == ‘2‘:

tn.write(b‘\n‘)

telreply = tn.expect([],timeout=1)[2].encode("utf-8")      #获取Telnet交互信息

DeviceName = (re.findall(str(".*<(.*)>.*"),telreply))[0]  #生成的设备名称是个list。后面调用列表里面的索引0

tn.write(save+‘ ‘+DeviceName+‘-‘+LogTime+‘.cfg‘+‘\n‘)

tn.read_until(‘N]‘)

tn.write(‘y‘+‘\n‘)

tn.read_until(‘successfully.‘)

tn.write(‘tftp‘+‘ ‘+tftp+‘ ‘+‘put‘+‘ ‘+‘flash:/‘+DeviceName+‘-‘+LogTime+‘.cfg‘+‘\n‘ )#使用tftp导出系统配置

time.sleep(2)

tn.write(‘quit‘+‘\n‘)

tn.close()

print Host,‘Backup Success !!‘

except :

print Host,‘Backup Failed !!‘

时间: 2024-12-22 21:02:59

使用python脚本Telnet 华为交换机备份配置的相关文章

华为交换机基本配置命令

  华为交换机基本配置命令 一.单交换机VLAN划分 命令 命令解释 system 进入系统视图 system-view 进入系统视图 quit 退到系统视图 undo vlan 20 删除vlan 20 sysname 交换机命名 disp vlan 显示vlan vlan 20 创建vlan(也可进入vlan 20) port e1/0/1 to e1/0/5 把端口1-5放入VLAN 20 中 disp vlan 20 显示vlan里的端口20 int e1/0/24 进入端口24 por

华为交换机基础配置命令参考

华为交换机基础配置命令参考 基础配置 用户模式 登陆设备后,直接进入用户模式,只能执行少量查看配置的命令: 视图模式 用户模式下,输入system-view进入视图模式,可执行设备全局配置的命令: 局部配置模式 视图模式下,输入局部配置命令,如interface GE 1/0/0,进入GE1/0/0端口配置模式, 此外局部配置模式有很多种,可根据不同需求进入vlan配置模式.端口聚合配置模式等,可输入?,查看当前模式下,能执行哪些命令: 输入quit返回上一层配置模式,输入commit提交已有配

python脚本批量修改华为交换机端口配置

用python写的,主要是telnetlib库的应用,华为交换机批量修改端口配置,把已经UP的端口做一个port sec的mac sticky绑定,DOWN的端口,就clear配置信息. 使用前,先在交换机上 dis int bri,查出交换机的端口状态信息并复制到此脚本同目录下,以 IP.txt这样的格式命名的文件(比如 192.168.0.1对应 192.168.0.1.txt),以下内容记得把IP跟账号密码改成自己的. import sys,os,telnetlib,re ip = '你的

华为交换机基本配置命令明细

1:配置登录用户,口令等 <Quidway>                   //用户直行模式提示符,用户视图 <Quidway>system-view        //进入配置视图 [Quidway]                  //配置视图(配置密码后必须输入密码才可进入配置视图) [Quidway] sysname xxx //设置主机名成为xxx这里使用 [Quidway] aaa  //进入aaa认证模式定义用户账户 [Quidway-aaa] local-u

华为交换机sflow配置

华为交换机sflow功能配置 1.配置交换机的sflow流发送 [系统视图]sflow agen ip  x.x.x.x                 设置sflow输出源 [系统视图]sflow collector 1 ip x.x.x.x           设置sflow分析器组1并关联到IP x.x.x.x [系统视图]sflow collector 1 port 6432            设置sflow分析器组1输出端口 2.应用slow,配置交换机某个端口的slow功能 [系

华为交换机基础配置

一些华为的基础的命令行 system-view ------ 进入系统视图sysname-------R1修改主机名为R1 display version ------显示版本 display current-configuration -------查看交换机当前配置 save ----配置完交换机后保存当前配置的命令aaa-----进入三A视图vlan10-----创建一个vlan10display port vlan------显示当前各端口vlan情况undo terminal moni

华为交换机清除配置

1.清除端口配置 ```(cmd)<huawei>system-view[huawei]interface gigabitethernet 0/0/? (?:表示第几个端口)[huawei-GigabitEthernet0/0/?]clear configuration interface gigabitethernet 0/0/?清除该端口的配置后,该端口处于关闭状态,可以用以下命令重新开启.[huawei-GigabitEthernet0/0/?]undo shutdown # 2.清除交

python脚本巡检H3C交换机

#在/var/pythonjiaoben/目录下创建ip_list文件vim iplist.txt1.1.1.12.2.2.2 # 主python脚本创建在/var/pythonjiaoben/目录下vim xunjian.py import pexpectimport sysimport timeimport osimport datetime now_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")os.mak

华为交换机堆叠配置经典命令

1.SW#stack #stack member 1 domain 1 #stack member 1 priority  200 #com #interface stack-port 1/1 #port member-group interface 10ge 1/0/1 保存配置后重启交换机 2.  SW#stack #stack member 1 renumeber 2 inherit-config(保存,必须重启) #stack member 2 domain 1 #stack membe