Files
docker-compose/monitor.py
2023-01-06 10:20:48 +00:00

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)