公司要公司要IT转型,我该怎么办?转型,我该怎么办?Python让我看见网络自动运维的曙光让我看见网络自动运维的曙光
“ Python自动运维,释放自我。”
01 面临问题面临问题
网络运维苦,电信级网络运维更苦。网络运维苦,电信级网络运维更苦。
账号密码是否过期?
设备能否正常登陆?
设备是否正常?
给定某设备IP地址,用户名和密码,完成以下任务:
模拟telnet/ssh设备,可以测试账号可用性,设备连通性
执行指令,返回结果,如查询配置文件
分析配置文件,比如关注拓扑信息,学习Python正则表达式的基本知识;
02 怎么办怎么办
模拟模拟telnet/ssh
Python有很多第三方库,实现ssh、ftp、telnet等命令交互。
如pexpect、paramiko等,都没时间涉及。
先用Python自带的telnetlib实现最简单的telnet功能,
后续如果有需求再进一步学习。
模拟telnet的代码如下:
import telnetlibhost = "x.x.x.x" #设备IP,将来可以从一个地址池中读取user =b 'x' #用户名密码password =b 'x'finsh = b"#" #结束符号tn = telnetlib.Telnet(host) #创建telnet连
接tn.read_until(b"login: ") #读取到给定字符串tn.write(user + b"") #输入用户名tn.read_until(b"Password: ")tn.write(password + b"") tn.read_until(finsh)
确保网络是通的。
python正在模拟人工登陆。
telnetlib.Telnet(host) 没有报错,说明设备网络通的,也开放了没有报错,说明设备网络通的,也开放了telnet端口;端口;
tn.read_until(finsh) 执行完毕,说明账号密码正常,可以正常登陆执行完毕,说明账号密码正常,可以正常登陆
执行指令并返回结果执行指令并返回结果
正常telnet设备后,通过指令查询爱立信MME attach相关指标。
指令如下:
attach | tail -10
Python代码如下:
command =b "attach | tail -10" #待执行指令 tn.write(command + b"") #Python执行指令,模拟人工输入、回车 res = tn.read_until(finsh) #python读取指令结果
tn.read_until(finsh) 可以理解为从执行上条指令开始,一直读取到从执行上条指令开始,一直读取到finsh结束。结束。
这里是#,不同平台可能不一样,如~等。
查看res结果如下,说明已经正确完成指令结果读取。
分析本地配置文件分析本地配置文件
由于安全原因路由器无法直接telnet,
暂时通过分析本地配置文件。
其实对于上述MME的指令结果也可以继续分析。
分析指令结果分析指令结果