lint check service

This commit is contained in:
vincent 2022-01-30 17:05:29 +01:00
parent 52c2852aa9
commit 6db4a527e6

View File

@ -2,58 +2,61 @@ import subprocess
import time import time
import sys import sys
services=("syncthing@vincent", services = ("syncthing@vincent",
"postgresql", "postgresql",
"nginx", "nginx",
"php-fpm", "php-fpm",
"gitea", "gitea",
"tt-rss", "tt-rss",
"gunicorn-chainetv.socket", "gunicorn-chainetv.socket",
"supysonic-server", "supysonic-server",
"rsyncd.service", "rsyncd.service",
"fail2ban", "fail2ban",
"supysonic-daemon", "supysonic-daemon",
"home-assistant", "home-assistant",
"radicale", "radicale",
"chisel-server", "chisel-server",
"JDownloader", "JDownloader",
"vaultwarden") "vaultwarden")
containers=("pihole",)
containers = ("pihole",)
class Service(object): class Service(object):
def __init__(self, serviceName): def __init__(self, serviceName):
self.name=serviceName self.name = serviceName
def is_active(self): def is_active(self):
cmd="/usr/bin/systemctl" cmd = "/usr/bin/systemctl"
proc=subprocess.Popen([cmd,'is-active',self.name],stdout=subprocess.PIPE) proc = subprocess.Popen(
[cmd, 'is-active', self.name], stdout=subprocess.PIPE)
proc.communicate() proc.communicate()
rc=proc.returncode rc = proc.returncode
if rc == 0: if rc == 0:
return True return True
else: else:
return False return False
def get_last_log(self): def get_last_log(self):
cmd="/usr/bin/journalctl" cmd = "/usr/bin/journalctl"
proc=subprocess.check_output([cmd,'--lines=10','-q','-u',self.name]) proc = subprocess.check_output(
[cmd, '--lines=10', '-q', '-u', self.name])
return proc.decode('UTF-8').split('\n') return proc.decode('UTF-8').split('\n')
class Container(object): class Container(object):
def __init__(self, containerName): def __init__(self, containerName):
self.name=containerName self.name = containerName
def is_active (self): def is_active(self):
cmd="/usr/bin/docker" cmd = "/usr/bin/docker"
try: try:
proc=subprocess.check_output([cmd,'ps'],stderr=subprocess.STDOUT) proc = subprocess.check_output(
[cmd, 'ps'], stderr=subprocess.STDOUT)
except: except:
proc=b'' proc = b''
pass pass
proc=proc.decode('UTF-8') proc = proc.decode('UTF-8')
if (proc.find(self.name) != -1): if (proc.find(self.name) != -1):
return True return True
else: else:
@ -61,26 +64,25 @@ class Container(object):
if __name__ == '__main__': if __name__ == '__main__':
wait=True wait = True
if len(sys.argv) > 1: if len(sys.argv) > 1:
if sys.argv[1] == "nowait": if sys.argv[1] == "nowait":
wait=False wait = False
if (wait): if (wait):
time.sleep(15) time.sleep(15)
for serviceName in services: for serviceName in services:
serviceObj=Service(serviceName) serviceObj = Service(serviceName)
if (serviceObj.is_active()): if (serviceObj.is_active()):
print (f"{serviceObj.name} is active") print(f"{serviceObj.name} is active")
else: else:
print (f"{serviceObj.name} is inactive") print(f"{serviceObj.name} is inactive")
for line in serviceObj.get_last_log(): for line in serviceObj.get_last_log():
print(line) print(line)
for containerName in containers: for containerName in containers:
containerObj=Container(containerName) containerObj = Container(containerName)
if containerObj.is_active(): if containerObj.is_active():
print (f"{containerObj.name} is active") print(f"{containerObj.name} is active")
else: else:
print (f"{containerObj.name} is inactive") print(f"{containerObj.name} is inactive")