29 lines
788 B
Python
Executable File
29 lines
788 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import json
|
|
import time
|
|
import subprocess
|
|
from subprocess import CalledProcessError
|
|
|
|
import logging
|
|
import logging.handlers as Handlers
|
|
|
|
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
log = logging.getLogger()
|
|
log.setLevel(logging.DEBUG)
|
|
|
|
file = open('config.json', mode='r')
|
|
config = json.loads(file.read())
|
|
file.close()
|
|
|
|
while True:
|
|
try:
|
|
log.info("Pinging server " + config['server'])
|
|
output = subprocess.check_output(['ping', '-c', '5', config['server']], stderr=subprocess.STDOUT)
|
|
log.info("Ping OK")
|
|
time.sleep(5)
|
|
except CalledProcessError as e:
|
|
log.error(e.output.decode('ascii', 'ignore'))
|
|
log.error("Will reboot now")
|
|
output = subprocess.check_output(['shutdown', '-r', 'now'], stderr=subprocess.STDOUT)
|