diff --git a/omv_backup_v2.py b/omv_backup_v2.py index d97a5fa..271840f 100644 --- a/omv_backup_v2.py +++ b/omv_backup_v2.py @@ -49,7 +49,7 @@ mqtt_username = 'jaydee' mqtt_password = 'jaydee1' print("1") try: - opts, args = getopt.getopt(sys.argv[1:], "amftdr:b", ["command=", "help", "output="]) + opts, args = getopt.getopt(sys.argv[1:], "amftDr:bd:", ["command=", "help", "output="]) except getopt.GetoptError as err: #usage() sys.exit(2) @@ -58,6 +58,7 @@ output = None _MODE = "manual" _FIRST = _TEST = _RESTORE = _BACKUP = False _EXECUTE = True +_DATE = "pick" for o, a in opts: if o == "-a": _MODE = "auto" @@ -65,6 +66,8 @@ for o, a in opts: _MODE = "manual" elif o in ("-f", "--first"): _FIRST = True + elif o in ("-d", "--date"): + _DATE = a elif o in ("-t", "--test"): _TEST = True elif o in ("-r", "--restore"): @@ -73,7 +76,7 @@ for o, a in opts: print("RESTORE") elif o in ("-b", "--backup"): _BACKUP = True - elif o in ("-d", "--dry"): + elif o in ("-D", "--dry"): _EXECUTE = False print("2") @@ -159,23 +162,39 @@ if _RESTORE: client.disconnect() now = datetime.datetime.now() DATETIME = now.strftime("%Y-%m-%d_%H-%M-%S") - BACKUP_HOST = f"jd@{host}" + BACKUP_HOST = f"jd@omv.home.lan" BACKUP_DEVICE = "/srv/dev-disk-by-uuid-2f843500-95b6-43b0-bea1-9b67032989b8" BACKUP_DIR = f"/backup/{host}" + + 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'" + status, output = subprocess.getstatusoutput(cmnd) + #print(output) + dates = output.splitlines() + n = 1 + for i in dates: + s = i.split() + print(f"{n} - {s[1]} / {s[0]}" ) + n += 1 + + ans = input("Pick a backup to restore : ") + d = dates[int(ans) - 1] + _DATE = d.split()[1] + if app == "fail2ban": print("?>?????") - NEW_BACKUP_DIR = f"/backup/m-server/fail2ban/latest/" + NEW_BACKUP_DIR = f"/backup/m-server/fail2ban/{_DATE}/" SOURCE_DIR = f"/etc/fail2ban" else: - NEW_BACKUP_DIR = f"/backup/m-server/docker_data/latest/{app}" + NEW_BACKUP_DIR = f"/backup/m-server/docker_data/{_DATE}/{app}" SOURCE_DIR = f"/share/docker_data/" if _FIRST: BACKUP_PATH="{}/initial".format(BACKUP_DIR) else: BACKUP_PATH="{}/{}".format(BACKUP_DIR, DATETIME) - LATEST_LINK="{}/latest".format(BACKUP_DIR) - FULL_BACKUP_LATEST = f"{NEW_BACKUP_DIR}/latest" - LATEST_LINK = f"/{host}/{app}/latest" + LATEST_LINK="{}/{}".format(BACKUP_DIR,_DATE) + FULL_BACKUP_LATEST = f"{NEW_BACKUP_DIR}/{_DATE}" + LATEST_LINK = f"/{host}/{app}/{_DATE}" msg = {"status":"started","bak_name":app,"start_time":DATETIME,"end_time":"in progress", "progress":0}