用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 = '你的IP'
txtfile = ip + '.txt'

tel = telnetlib.Telnet(ip)
tel.read_until('Username:')
tel.write('你的账号'+'\n')
tel.read_until('Password:')
tel.write('你的密码'+'\n')
tel.read_until('>')
tel.write('sys'+'\n')



file1 = open(txtfile)

while True:

    a = file1.readline()
    if a == '':break  
    int1 = a[:21]
  
    if re.search('up',a):
        print int1,' up'
        tel.read_until(']')
        tel.write('int'+' '+ int1 +'\n')
        tel.read_until(']')
        tel.write('port-security enable'+'\n')
        tel.read_until(']')
        tel.write('port-security mac-address sticky'+'\n')
      
    else:
        print int1,' down'
        tel.read_until(']')
        tel.write('int'+' '+ int1 +'\n')
        tel.read_until(']')
        tel.write('clear configuration this '+'\n')
        tel.read_until('[Y/N] :')
        tel.write('Y' + '\n')
        tel.read_until(']')
        tel.write('undo shutdown'+'\n')

tel.close()