44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
import subprocess
|
|
import time
|
|
import ipaddress
|
|
|
|
|
|
def run_subprocess(cmd, check=True, delay=0):
|
|
cmd_split = cmd.split(" ")
|
|
output = subprocess.run(
|
|
cmd_split, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=check
|
|
).stdout.decode("utf-8")
|
|
if delay > 0:
|
|
time.sleep(delay)
|
|
return output
|
|
|
|
|
|
while True:
|
|
try:
|
|
myip = run_subprocess("curl ifconfig.co")
|
|
results1 = run_subprocess("docker exec -it vpn nordvpn status")
|
|
results2 = run_subprocess("docker exec -it dante curl ifconfig.co")
|
|
|
|
NoIP = False
|
|
try:
|
|
ip = ipaddress.ip_address(myip.strip())
|
|
ip = ipaddress.ip_address(results2.strip())
|
|
except:
|
|
print("Socks error")
|
|
NoIP = False
|
|
|
|
if NoIP or results1.find("Status: Connected") == -1: # Not Connected
|
|
print("Restarting")
|
|
run_subprocess("docker-compose restart vpn", delay=30)
|
|
run_subprocess("docker-compose restart dante", delay=10)
|
|
run_subprocess("docker-compose restart qbittorrent")
|
|
else:
|
|
pass
|
|
except:
|
|
print("Restarting")
|
|
run_subprocess("docker-compose restart vpn", delay=30)
|
|
run_subprocess("docker-compose restart dante", delay=10)
|
|
run_subprocess("docker-compose restart qbittorrent")
|
|
|
|
time.sleep(10 * 60)
|