python3自动化运维之链路检测,ping不通时切换网络路径

说明,正常网络通过A链路走,当检测到10.2.2.23和10.2.1.65都不通的情况下,将网络切换到B备链路上,使其正常访问,时间:每秒检测一次。/etc/crontab下面写定时任务。
import os
import time
import datetime
import telnetlib
import smtplib
ping=[“10.2.2.23”]
ping1=[“10.2.1.65”]
Host=(“172.19.254.254”)
Host1=(“172.19.250.250”)
User=“network.wu”
Password=“network123”
for i in ping:
bb=os.system(“ping -c 5 “+i)
filename=i+”.txt”
if bb:
with open(filename,“a”) as file:
cc=i+" DOWN",time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
file.write(str(cc)+"\n")
for j in ping1:
dd=os.system(“ping -c 5 “+j)
filename1=j+”.txt”
if dd:
with open(filename1,“a”) as file:
ee=j+" DOWN",time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
file.write(str(ee)+"\n")
if i==“10.2.2.23” and j==“10.2.1.65”:
tn=telnetlib.Telnet(Host)
tn.set_debuglevel(2)
time.sleep(2)
tn.read_until(rb"Username:")#使用缓存技术进行存储,如果匹配到User将写入
time.sleep(2)
tn.write(User.encode(“ascii”) + b"\r\n")
time.sleep(2)
tn.read_until(rb"Password:")
time.sleep(2)
tn.write(Password.encode(“ascii”) + b"\r\n")
time.sleep(2)
print(“Password Success”)
tn.write(b"sys\r\n")
time.sleep(2)
print(“please wait…”)
tn.write(b"undo ip route-static 10.2.0.0 255.255.0.0 172.19.250.250"+b"\r\n")
time.sleep(2)
tn.write(b"commit"+b"\r\n")
print(“please wait…”)
time.sleep(3)
print(“OK”)
print(b"\n")
print(b"quit\r\n")
tn.close()
if i==“10.2.2.23” and j==“10.2.1.65”:
tn=telnetlib.Telnet(Host1)
tn.set_debuglevel(2)
time.sleep(2)
tn.read_until(rb"Username:")
tn.write(User.encode(“ascii”) + b"\r\n")
tn.read_until(rb"Password:")
tn.write(Password.encode(“ascii”) + b"\r\n")
time.sleep(2)
tn.write(b"sys\r\n")
time.sleep(2)
tn.write(b"interface g0/0/0.32\r\n")
time.sleep(2)
tn.write(b"shutdown\r\n")
print(b"\n")
print(b"quit\r\n")
tn.close()

上一篇:机器学习中的TP,FP,TN,FN


下一篇:uni-app 动态修改标题栏按钮名称