mirror of
				https://gitlab.sectorq.eu/jaydee/omv_backup.git
				synced 2025-10-31 02:21:10 +01: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,24 +205,20 @@ 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) | ||||||
|         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) |  | ||||||
|          |          | ||||||
|              |              | ||||||
|         if app == "heimdall": |         if app == "heimdall": | ||||||
|             print("Stopping docker") |             print("Stopping docker") | ||||||
|             cmnd = "docker stop heimdall" |             cmnd = "docker stop heimdall" | ||||||
|             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) | ||||||
|             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
	 jaydee
					jaydee