diff --git a/docker_backups.py b/docker_backups.py index 35aacc2..622bb30 100755 --- a/docker_backups.py +++ b/docker_backups.py @@ -2,29 +2,38 @@ import subprocess import requests import datetime import os +import shutil now = datetime.datetime.now() +PASSWORD = "l4c1j4yd33Du5lo" DATETIME = now.strftime("%Y%m%d%H%M%S") - +os.chdir("/share/docker_data/__backups/") print("Backup gitlab") cmnd = 'docker exec -t gitlab gitlab-backup create SKIP=artifacts,repositories,registry,uploads,builds,pages,lfs,packages,terraform_state' status, output = subprocess.getstatusoutput(cmnd) +shutil.move("/share/docker_data/gitlab/data/backups/*", "/share/docker_data/__backups/") +allfiles = os.listdir("/share/docker_data/gitlab/data/backups/") +for f in allfiles: + shutil.move(f"/share/docker_data/gitlab/data/backups/{f}", "/share/docker_data/__backups/") + + print("Backup nextcloud") cmnd = 'docker exec --user www-data nextcloud-app-1 php occ maintenance:mode --on' status, output = subprocess.getstatusoutput(cmnd) -cmnd = f"docker exec nextcloud-db-1 sh -c 'exec mysqldump --single-transaction -h localhost -u nextcloud -pl4c1j4yd33Du5lo nextcloud' > /share/docker_data/__backups/nextcloudDB_{DATETIME}.sql" +cmnd = f"docker exec nextcloud-db-1 sh -c 'exec mysqldump --single-transaction -h localhost -u nextcloud -p{PASSWORD} nextcloud' > /share/docker_data/__backups/nextcloudDB_{DATETIME}.sql" status, output = subprocess.getstatusoutput(cmnd) cmnd = "docker exec --user www-data nextcloud-app-1 php occ maintenance:mode --off" status, output = subprocess.getstatusoutput(cmnd) +cmnd = f"zip -P {PASSWORD} nextcloudDB_{DATETIME}.sql.zip nextcloudDB_{DATETIME}.sql" +status, output = subprocess.getstatusoutput(cmnd) +os.remove(f"nextcloudDB_{DATETIME}.sql") print("Backup Kestra") cmnd = f"docker exec kestra-postgres-1 sh -c 'pg_dump -h localhost -p 5432 -U kestra -d kestra' > /share/docker_data/__backups/kestra_{DATETIME}.sql" - status, output = subprocess.getstatusoutput(cmnd) -os.chdir - -cmnd = f"zip -P l4c1j4yd33Du5lo kestra_{DATETIME}.sql.zip kestra_{DATETIME}.sql" -print(cmnd) +cmnd = f"zip -P {PASSWORD} kestra_{DATETIME}.sql.zip kestra_{DATETIME}.sql" status, output = subprocess.getstatusoutput(cmnd) +os.remove(f"kestra_{DATETIME}.sql") + print("Backup portainer") headers = { @@ -33,7 +42,7 @@ headers = { } json_data = { - 'password': 'l4c1j4yd33Du5lo', + 'password': PASSWORD, } response = requests.post('https://portainer.sectorq.eu/api/backup', headers=headers, json=json_data, verify=True) @@ -44,4 +53,8 @@ response = requests.post('https://portainer.sectorq.eu/api/backup', headers=head #response = requests.post('https://portainer.sectorq.eu/api/backup', headers=headers, data=data, verify=False) with open(f'/share/docker_data/__backups/portainer_snapshot_{DATETIME}.tar.gz', 'wb') as f: - f.write(response.content) \ No newline at end of file + f.write(response.content) +os.chdir("/share/docker_data/__backups/") +print("Remove Old Files") +cmnd = f" find ./ -maxdepth 1 -type f -mtime +15 -exec rm -f {{}} \\;" +status, output = subprocess.getstatusoutput(cmnd) \ No newline at end of file