I created script to auto check and switch ISP for this problem:
root@wgproxy [~] # mkdir /root/ChangeGW
root@wgproxy [~] # cd /root/ChangeGW/
root@wgproxy [~/ChangeGW] # vi checkGW.py
#!/usr/bin/pythonimport os, smtplib
from threading import Thread
def sendmail(subject):
"Sends an email to the specified recipent "
username = 'xxxxx@gmail.com'
password = 'abcdefgh'
server = smtplib.SMTP('smtp.gmail.com:25')
server.starttls()
server.login(username, password)
fromAddr ='xxxxx@gmail.com'
toAddr2 = 'yyyyyy@gmail.com'
header = 'To: ' + toAddr2 + '\n' + 'From: ' + fromAddr + '\n' + 'Subject: ' + subject + '\n'
msg = header + '\nCheck it now!\n'
server.sendmail(fromAddr, toAddr2, msg)
server.close()
def FPT():
ip = '/root/ChangeGW/ISP'
ret = os.system('ping -c 4 118.70.127.130 &> /dev/null')
fr = open(ip,"r")
str = fr.read(3)
fr.close()
if ret != 0 and str == "FPT":
message = 'ADSL FPT has been DOWN and switch to ADSL VT'
os.system('/root/ChangeGW/GWVT')
fo1 = open(ip,"w")
fo1.write("VTL")
fo1.close()
sendmail(message)
print message
def VT():
ip = '/root/ChangeGW/ISP'
ret = os.system('ping -c 4 118.70.127.130 &> /dev/null')
fr = open(ip,"r")
str = fr.read(3)
fr.close()
if ret == 0 and str == "VTL":
message = 'ADSL FPT has been Up and Restored ADSL VT to ADSL FPT'
os.system('/root/ChangeGW/GWFPT')
fo1 = open(ip,"w")
fo1.write("FPT")
fo1.close()
sendmail(message)
print message
def checkGW():
FPT()
VT()
t = Thread(target=checkGW)
t.start()
root@wgproxy [~/ChangeGW] # vi GWFPT
#!/bin/bash
echo NETWORKING=yes > /etc/sysconfig/network
echo HOSTNAME=wgproxy >> /etc/sysconfig/network
echo GATEWAY=192.168.1.2 >> /etc/sysconfig/network
echo NOZEROCONF=yes >> /etc/sysconfig/network
/sbin/service network restart
root@wgproxy [~/ChangeGW] # vi GWVT
#!/bin/bash
echo NETWORKING=yes > /etc/sysconfig/network
echo HOSTNAME=wgproxy >> /etc/sysconfig/network
echo GATEWAY=192.168.10.1 >> /etc/sysconfig/network
echo NOZEROCONF=yes >> /etc/sysconfig/network
/sbin/service network restart
root@wgproxy [~/ChangeGW] # vi ISP
FPT #begin set content FPT, default using FPT network
root@wgproxy [~/ChangeGW] # chmod +x checkGW.py
root@wgproxy [~/ChangeGW] # chmod +x GWFPT
root@wgproxy [~/ChangeGW] # chmod +x GWVT
insert crontab run after about 1 minute:
* * * * * /root/ChangeGW/checkGW.py > /dev/null 2>&1
# run 1 minute
OK Done, let's go test it
insert crontab run after about 1 minute:
* * * * * /root/ChangeGW/checkGW.py > /dev/null 2>&1
# run 1 minute
OK Done, let's go test it
Không có nhận xét nào:
Đăng nhận xét