Files
Proxmox-VM-Configs/config-backup.py
2024-04-04 15:13:53 -09:00

48 lines
1.3 KiB
Python

import subprocess
from pathlib import Path
import shutil
import os
import datetime
now = datetime.datetime.now()
CONFIGPATHS = [
("100","nextcloud","/srv/nextcloud/config"),
("105","authdocker","/root"),
("107","homeautomation","/root"),
("109","immich-vfs","/root"),
]
def main():
for lxc in CONFIGPATHS:
print(lxc)
newdir = Path(f"{lxc[0]}-{lxc[1]}{lxc[2].replace('/','.')}")
try:
newdir.mkdir()
except FileExistsError as e:
pass
finally:
configpath = f"/main/subvol-{lxc[0]}-disk-0{lxc[2]}/"
try:
shutil.copytree(configpath, newdir, dirs_exist_ok=True,
ignore=__ignore_dirs)
except:
pass
finally:
pass
subprocess.run(["git","checkout","-b","200-19"])
subprocess.run(["git","add","."])
subprocess.run(["git","commit","-m",f"Backup for {now}"])
subprocess.run(["git","push","-u","origin","200-19"])
def __ignore_dirs(path, names):
dirs = [".git", ".local", ".cache"]
ignoredirs = []
for file in os.listdir(path):
if file in dirs:
ignoredirs.append(file)
return tuple(ignoredirs)
if __name__ == "__main__":
main()