交换机py功能

执行速度比较慢

获取版本

import comware 
cmd = comware.CLI('dis dev ;',False)
cout = cmd.get_output()
print(cout[2])

print(cout)

python 读写文件

import comware ,os,re

pwd = os.getcwd()
print("当前目录: " + pwd)
file_list = os.listdir('./')

for file in file_list:
	print("file: " , file)


f=open('startup.cfg', 'r' )
print(f.read())
f.close()
 


with open('./k.py', 'w+'   ) as f:
    f.write('Hello, world123!')



with open('./k.py', 'r'   ) as f:
    print(f.read())



多行内容


cc = """
import comware ,os,re

pwd = os.getcwd()
print("dir: " + pwd)
file_list = os.listdir('./')

for file in file_list:
	print("file: " , file)
"""

print(cc)



with open('./k.py', 'w+'   ) as f:
    f.write(cc)

查看文件

more k.py

执行python文件

python flash:/k.py
  • 交互方式写入py文件
  • 通过命令直接执行

获取管理地址

dis lldp nei int  GE1/0/25 verbose

通过交换机管理交换机

telnet 10.10.13.1

获取序列号

dis dev manuinfo

下载文件

import comware
c = comware.Transfer('http', '192.168.20.199', 'h3c/test.py', 'flash:/test.py',login_timeout=15, user='', password='')

测试

test.py 自动下载测试文件arun.py

import comware  
c = comware.Transfer('http', '192.168.20.199', 'h3c/arun.py', 'flash:/arun.py',login_timeout=15, user='', password='')

ls.py 列出文件

import comware ,os,re

pwd = os.getcwd()
print("dir: " + pwd)
file_list = os.listdir('./')

for file in file_list:
	print("file: " , file)

下载出错处理

import comware
c = comware.Transfer('http', '192.168.20.199', 'h3c/test.cfg', 'flash:/test.cfg',login_timeout=15, user='', password='')

err = c.get_error()
print(err)

根据SN自动配置

DHCP配合bootfile选项执行python文件

startup saved-configuration flash:/i_1234566.cfg

自动运行文件 arun.py

import comware ,os,re,time

def getSN():
    """ get  SERIAL NUMBER """
    cmdc = 'dis dev manuinfo'
    cmd = comware.CLI(cmdc,False)
    cout = cmd.get_output()
    exstr ='DEVICE_SERIAL_NUMBER\s+:\s+(.*)' 
    for o in cout:
        ret = re.search(exstr,o)
        if ret:
            sn = ret.group(1)
            print(sn)
            return sn

    
def getCFG(ip,sn):
    """" get config """
    c = comware.Transfer('http', ip, 'h3c/{}.cfg'.format(sn), 'flash:/test.cfg',login_timeout=15, user='', password='')
    err = c.get_error()
    if err:
		return False
    else:
    	return True
    
def doit():
    """ run main """
    ip = "192.168.20.199"
    sn = getSN()
    """  """
    for i in range(60):
        stat = getCFG(ip,sn)
        if stat == True:
            break
        else:
            time.sleep(10)
            print("try {}".format(i))
        
def doset():
    """  set startup """
    comware.CLI('startup saved-configuration flash:/test.cfg main;reboot force')
    
    
if __name__ == '__main__':
    doit()