mirror of
https://gitlab.sectorq.eu/jaydee/omv_backup.git
synced 2025-07-03 00:23:06 +02:00
initial
This commit is contained in:
@ -171,6 +171,7 @@ if _RESTORE:
|
|||||||
else:
|
else:
|
||||||
_APP = _APP.split(",")
|
_APP = _APP.split(",")
|
||||||
|
|
||||||
|
|
||||||
for app in _APP:
|
for app in _APP:
|
||||||
topic = "sectorq/omv/restore/{}".format(app)
|
topic = "sectorq/omv/restore/{}".format(app)
|
||||||
client.connect(broker,1883,60)
|
client.connect(broker,1883,60)
|
||||||
@ -204,11 +205,13 @@ if _RESTORE:
|
|||||||
|
|
||||||
|
|
||||||
#cmnd = "rsync -av --delete {}/ --link-dest {} --exclude=\".cache\" {}".format(SOURCE_DIR, LATEST_LINK, BACKUP_PATH)
|
#cmnd = "rsync -av --delete {}/ --link-dest {} --exclude=\".cache\" {}".format(SOURCE_DIR, LATEST_LINK, BACKUP_PATH)
|
||||||
|
|
||||||
|
|
||||||
|
if app == "heimdall":
|
||||||
|
print("Stopping docker")
|
||||||
|
cmnd = "docker stop heimdall"
|
||||||
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
cmnd = f"rsync -avz --delete rsync://{BACKUP_HOST}{NEW_BACKUP_DIR} {SOURCE_DIR}"
|
cmnd = f"rsync -avz --delete rsync://{BACKUP_HOST}{NEW_BACKUP_DIR} {SOURCE_DIR}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ans = "y"
|
ans = "y"
|
||||||
print(cmnd)
|
print(cmnd)
|
||||||
print("Sync files")
|
print("Sync files")
|
||||||
@ -216,12 +219,6 @@ if _RESTORE:
|
|||||||
ans = input("continue?") or "n"
|
ans = input("continue?") or "n"
|
||||||
if ans == "y" and _EXECUTE:
|
if ans == "y" and _EXECUTE:
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
|
||||||
|
|
||||||
if app == "heimdall":
|
|
||||||
print("Stopping docker")
|
|
||||||
cmnd = "docker stop heimdall"
|
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
|
||||||
entries = ["Home Assistant","Nginx Proxy Manager","Portainer","Roundcube","Authentik","Kestra"]
|
entries = ["Home Assistant","Nginx Proxy Manager","Portainer","Roundcube","Authentik","Kestra"]
|
||||||
for e in entries:
|
for e in entries:
|
||||||
cmnd = f"sqlite3 /share/docker_data/heimdall/config/www/app.sqlite \"SELECT url FROM items WHERE title = '{e}'\""
|
cmnd = f"sqlite3 /share/docker_data/heimdall/config/www/app.sqlite \"SELECT url FROM items WHERE title = '{e}'\""
|
||||||
@ -229,17 +226,24 @@ if _RESTORE:
|
|||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
regex = re.compile(r'[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}')
|
regex = re.compile(r'[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}')
|
||||||
contents = re.sub(regex, IP , output)
|
contents = re.sub(regex, IP , output)
|
||||||
|
|
||||||
|
|
||||||
cmnd = f"sqlite3 /share/docker_data/heimdall/config/www/app.sqlite \"UPDATE items SET url = '{contents}' WHERE title = '{e}'\""
|
cmnd = f"sqlite3 /share/docker_data/heimdall/config/www/app.sqlite \"UPDATE items SET url = '{contents}' WHERE title = '{e}'\""
|
||||||
print(cmnd)
|
print(cmnd)
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
cmnd = "docker start heimdall"
|
cmnd = "docker start heimdall"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
|
||||||
elif app == "nginx":
|
elif app == "nginx":
|
||||||
print("Stopping docker")
|
print("Stopping docker")
|
||||||
cmnd = "docker stop nginx-app-1"
|
cmnd = "docker stop nginx-app-1"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
cmnd = f"rsync -avz --delete rsync://{BACKUP_HOST}{NEW_BACKUP_DIR} {SOURCE_DIR}"
|
||||||
|
ans = "y"
|
||||||
|
print(cmnd)
|
||||||
|
print("Sync files")
|
||||||
|
if _TEST:
|
||||||
|
ans = input("continue?") or "n"
|
||||||
|
if ans == "y" and _EXECUTE:
|
||||||
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
domains = ["sectorq.eu","gitlab.sectorq.eu","ha.sectorq.eu","mail.sectorq.eu","pw.sectorq.eu","semaphore.sectorq.eu","kestra.sectorq.eu","auth.sectorq.eu"]
|
domains = ["sectorq.eu","gitlab.sectorq.eu","ha.sectorq.eu","mail.sectorq.eu","pw.sectorq.eu","semaphore.sectorq.eu","kestra.sectorq.eu","auth.sectorq.eu"]
|
||||||
for d in domains:
|
for d in domains:
|
||||||
cmnd = f'sqlite3 /share/docker_data/nginx/data/database.sqlite "UPDATE proxy_host SET forward_host = \'{IP}\' WHERE domain_names = \'[\\"{d}\\"]\'"'
|
cmnd = f'sqlite3 /share/docker_data/nginx/data/database.sqlite "UPDATE proxy_host SET forward_host = \'{IP}\' WHERE domain_names = \'[\\"{d}\\"]\'"'
|
||||||
@ -265,6 +269,15 @@ if _RESTORE:
|
|||||||
print("Starting docker")
|
print("Starting docker")
|
||||||
cmnd = "docker start nginx-app-1"
|
cmnd = "docker start nginx-app-1"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
else:
|
||||||
|
cmnd = f"rsync -avz --delete rsync://{BACKUP_HOST}{NEW_BACKUP_DIR} {SOURCE_DIR}"
|
||||||
|
ans = "y"
|
||||||
|
print(cmnd)
|
||||||
|
print("Sync files")
|
||||||
|
if _TEST:
|
||||||
|
ans = input("continue?") or "n"
|
||||||
|
if ans == "y" and _EXECUTE:
|
||||||
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
ENDTIME = now.strftime("%Y-%m-%d_%H:%M:%S")
|
ENDTIME = now.strftime("%Y-%m-%d_%H:%M:%S")
|
||||||
msg = {"status":"finished","bak_name":app,"start_time":DATETIME,"end_time":ENDTIME,"progress":0}
|
msg = {"status":"finished","bak_name":app,"start_time":DATETIME,"end_time":ENDTIME,"progress":0}
|
||||||
@ -272,17 +285,10 @@ if _RESTORE:
|
|||||||
client.publish(topic, json.dumps(msg))
|
client.publish(topic, json.dumps(msg))
|
||||||
client.disconnect()
|
client.disconnect()
|
||||||
|
|
||||||
print("Getting size of FS")
|
|
||||||
#cmnd = "du -h --max-depth=0 {}".format(BACKUP_FS)
|
|
||||||
cmnd = "ssh root@omv.home.lan 'df -h /srv/dev-disk-by-uuid-2f843500-95b6-43b0-bea1-9b67032989b8|awk '\\''{ print $3 }'\\''|tail -1'"
|
|
||||||
print(cmnd)
|
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
|
||||||
used_space = (output.split())[0]
|
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
ENDJOB = now.strftime("%Y-%m-%d_%H:%M:%S")
|
ENDJOB = now.strftime("%Y-%m-%d_%H:%M:%S")
|
||||||
print("Size : {}".format(used_space))
|
|
||||||
print("Sending finished status")
|
print("Sending finished status")
|
||||||
msg = {"mode":_MODE,"status":"finished","bak_name":"complete","start_time":STARTTIME,"end_time":ENDJOB,"progress":0,"used_space":used_space}
|
msg = {"mode":_MODE,"status":"finished","bak_name":"complete","start_time":STARTTIME,"end_time":ENDJOB,"progress":0,"used_space":"?"}
|
||||||
print(msg)
|
print(msg)
|
||||||
client.connect(broker,1883,10)
|
client.connect(broker,1883,10)
|
||||||
client.publish(topic_sum, json.dumps(msg))
|
client.publish(topic_sum, json.dumps(msg))
|
||||||
|
Reference in New Issue
Block a user