!!使用了 telnetlib 库
1 拓扑
未运行脚本的时候,R4、R5是没有到1.1.1.1和2.2.2.2的路由的:
配置文档放在跟python脚本同一个目录下:
运行python脚本之后:
成功!
#conf.py 文件
import time
from telnetlib import Telnet
def cfg(addr,user,pwd,secret,conf):
tn = Telnet(addr)
tn.write(user+'\n')
tn.write(pwd+'\n')
tn.write('enable\n')
tn.write(secret+'\n')
tn.write('terminal length 0\n')
time.sleep(1)
tn.write('conf t\n')
time.sleep(1)
confp = open(conf,'r')
for cmd in confp:
tn.write(cmd) #应为读一行的时候已经有换行符了,所以这里就不添加+'\n'了
print(cmd) #用于查看读取的命令
time.sleep(1) #建议每条命令都休眠一下,不然可能配置不了
confp.close()
if __name__ == "__main__":
fp = open('./ip.txt','r') #如果有多台主机要配置同样的命令的话,可以将主机IP都放在一个文档中
for ip in fp:
print("configuring "+ip.strip())
conf = cfg(ip.strip(),'cisco','cisco','cisco','./conf.txt')
print(ip.strip()+' was finished!')
print('done!')
fp.close()
#ip.txt //按需添加
172.16.1.4
172.16.2.5
#conf.txt //按需添加
ip route 1.1.1.1 255.255.255.255 f0/0
ip route 2.2.2.2 255.255.255.255 f0/0
do write