mirror of
https://gitlab.sectorq.eu/jaydee/omv_backup.git
synced 2025-07-01 23:58:33 +02:00
lala
This commit is contained in:
@ -49,16 +49,17 @@ mqtt_username = 'jaydee'
|
|||||||
mqtt_password = 'jaydee1'
|
mqtt_password = 'jaydee1'
|
||||||
print("1")
|
print("1")
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(sys.argv[1:], "amftDr:bd:", ["command=", "help", "output="])
|
opts, args = getopt.getopt(sys.argv[1:], "amftDr:bd:sSO", ["command=", "help", "output="])
|
||||||
except getopt.GetoptError as err:
|
except getopt.GetoptError as err:
|
||||||
#usage()
|
#usage()
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
output = None
|
output = None
|
||||||
# QJ : getopts
|
# QJ : getopts
|
||||||
_MODE = "manual"
|
_MODE = "manual"
|
||||||
_FIRST = _TEST = _RESTORE = _BACKUP = False
|
_FIRST = _TEST = _RESTORE = _BACKUP = _SYNC = _START = _STOP = False
|
||||||
_EXECUTE = True
|
_EXECUTE = True
|
||||||
_DATE = "pick"
|
_DATE = "pick"
|
||||||
|
|
||||||
for o, a in opts:
|
for o, a in opts:
|
||||||
if o == "-a":
|
if o == "-a":
|
||||||
_MODE = "auto"
|
_MODE = "auto"
|
||||||
@ -70,6 +71,12 @@ for o, a in opts:
|
|||||||
_DATE = a
|
_DATE = a
|
||||||
elif o in ("-t", "--test"):
|
elif o in ("-t", "--test"):
|
||||||
_TEST = True
|
_TEST = True
|
||||||
|
elif o in ("-s", "--sync"):
|
||||||
|
_SYNC = True
|
||||||
|
elif o in ("-S", "--start"):
|
||||||
|
_START = True
|
||||||
|
elif o in ("-O", "--stop"):
|
||||||
|
_STOP = True
|
||||||
elif o in ("-r", "--restore"):
|
elif o in ("-r", "--restore"):
|
||||||
_RESTORE = True
|
_RESTORE = True
|
||||||
_APP = a
|
_APP = a
|
||||||
@ -106,7 +113,7 @@ backups = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"m-server":{
|
"m-server":{
|
||||||
"login": "jd@m-server.home.lan",
|
"login": "root@m-server.home.lan",
|
||||||
"jobs": {
|
"jobs": {
|
||||||
"docker_data":{
|
"docker_data":{
|
||||||
"source":"/share/docker_data/",
|
"source":"/share/docker_data/",
|
||||||
@ -143,11 +150,39 @@ hm = socket.gethostbyaddr(BACKUP_HOST)
|
|||||||
|
|
||||||
print("Starting")
|
print("Starting")
|
||||||
print(_RESTORE)
|
print(_RESTORE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if _SYNC:
|
||||||
|
containers = ["HomeAssistant","webhub-web-1","heimdall","pihole","mosquitto-mosquitto-1","mailu3-redis-1","mailu3-webmail-1","mailu3-resolver-1","mailu3-antispam-1","mailu3-webdav-1","mailu3-smtp-1","mailu3-oletools-1","mailu3-front-1","mailu3-fetchmail-1","mailu3-imap-1","matter-server","piper-en","openwakeword","whisper-en","auth-worker-1","auth-server-1","auth-authentik_ldap-1","auth-redis-1","auth-postgresql-1","nginx-app-1"]
|
||||||
|
|
||||||
|
cmnd = f"curl -H 'Authorization: Bearer l4c1j4yd33Du5lo' 192.168.77.238:8094/v1/update"
|
||||||
|
print(cmnd)
|
||||||
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
|
||||||
|
if _START:
|
||||||
|
for c in containers:
|
||||||
|
cmnd = f"docker start {c}"
|
||||||
|
print(cmnd)
|
||||||
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
if _STOP:
|
||||||
|
cmnd = "docker ps"
|
||||||
|
status, running_containers = subprocess.getstatusoutput(cmnd)
|
||||||
|
|
||||||
|
print(running_containers)
|
||||||
|
for c in running_containers.splitlines():
|
||||||
|
print(c.split()[-1])
|
||||||
|
if c.split()[-1] == "watchtower-watchtower-1":
|
||||||
|
continue
|
||||||
|
cmnd = f"docker stop {c.split()[-1]}"
|
||||||
|
status, running_containers = subprocess.getstatusoutput(cmnd)
|
||||||
|
|
||||||
if _RESTORE:
|
if _RESTORE:
|
||||||
print("Starting Restore")
|
print("Starting Restore")
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
STARTTIME = now.strftime("%Y-%m-%d_%H:%M:%S")
|
STARTTIME = now.strftime("%Y-%m-%d_%H:%M:%S")
|
||||||
if _APP == "all":
|
if _APP == "all":
|
||||||
|
_DATE = "latest"
|
||||||
_APP = ["nginx","ha","gitlab","mailu","bitwarden","esphome","grafana","ingluxdb","kestra","matter-server","mosquitto","octoprint","octoprint2","pihole","unify_block","webhub"]
|
_APP = ["nginx","ha","gitlab","mailu","bitwarden","esphome","grafana","ingluxdb","kestra","matter-server","mosquitto","octoprint","octoprint2","pihole","unify_block","webhub"]
|
||||||
else:
|
else:
|
||||||
_APP = _APP.split(",")
|
_APP = _APP.split(",")
|
||||||
@ -165,21 +200,21 @@ if _RESTORE:
|
|||||||
BACKUP_HOST = f"jd@omv.home.lan"
|
BACKUP_HOST = f"jd@omv.home.lan"
|
||||||
BACKUP_DEVICE = "/srv/dev-disk-by-uuid-2f843500-95b6-43b0-bea1-9b67032989b8"
|
BACKUP_DEVICE = "/srv/dev-disk-by-uuid-2f843500-95b6-43b0-bea1-9b67032989b8"
|
||||||
BACKUP_DIR = f"/backup/{host}"
|
BACKUP_DIR = f"/backup/{host}"
|
||||||
|
|
||||||
|
|
||||||
if _DATE == "pick":
|
if _DATE == "pick":
|
||||||
cmnd = "ssh root@omv.home.lan 'du --max-depth=1 /srv/dev-disk-by-uuid-2f843500-95b6-43b0-bea1-9b67032989b8/backup/m-server/docker_data'"
|
cmnd = "ssh root@omv.home.lan 'ls /srv/dev-disk-by-uuid-2f843500-95b6-43b0-bea1-9b67032989b8/backup/m-server/docker_data'"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
#print(output)
|
#print(output)
|
||||||
dates = output.splitlines()
|
dates = output.splitlines()
|
||||||
n = 1
|
n = 1
|
||||||
for i in dates:
|
for i in dates:
|
||||||
s = i.split()
|
print(f"{n} - {i}" )
|
||||||
print(f"{n} - {s[1]} / {s[0]}" )
|
|
||||||
n += 1
|
n += 1
|
||||||
|
|
||||||
ans = input("Pick a backup to restore : ")
|
ans = input("Pick a backup to restore : ")
|
||||||
d = dates[int(ans) - 1]
|
_DATE = dates[int(ans) - 1]
|
||||||
_DATE = d.split()[1]
|
|
||||||
|
|
||||||
if app == "fail2ban":
|
if app == "fail2ban":
|
||||||
print("?>?????")
|
print("?>?????")
|
||||||
@ -231,8 +266,8 @@ if _RESTORE:
|
|||||||
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)
|
||||||
if app == "ha":
|
if app == "ha":
|
||||||
print("Stopping docker")
|
print("Stopping docker")
|
||||||
cmnd = "docker stop heimdall"
|
cmnd = "docker stop heimdall"
|
||||||
@ -246,8 +281,8 @@ if _RESTORE:
|
|||||||
if ans == "y" and _EXECUTE:
|
if ans == "y" and _EXECUTE:
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
print("Start docker")
|
print("Start docker")
|
||||||
cmnd = "docker start heimdall"
|
# cmnd = "docker start heimdall"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
# status, output = subprocess.getstatusoutput(cmnd)
|
||||||
if app == "fail2ban":
|
if app == "fail2ban":
|
||||||
print("Stopping docker")
|
print("Stopping docker")
|
||||||
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}"
|
||||||
@ -259,8 +294,8 @@ if _RESTORE:
|
|||||||
if ans == "y" and _EXECUTE:
|
if ans == "y" and _EXECUTE:
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
print("Start docker")
|
print("Start docker")
|
||||||
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"
|
||||||
@ -296,8 +331,8 @@ if _RESTORE:
|
|||||||
f.close()
|
f.close()
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
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:
|
else:
|
||||||
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"
|
||||||
|
Reference in New Issue
Block a user