交换机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()