Files
omv_backup/docker_backups.py
2025-03-01 16:05:54 +01:00

32 lines
1.4 KiB
Python

import subprocess
import requests
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)
print("Backup nextcloud")
cmnd = 'docker exec --user www-data nextcloud-app-1 php occ maintenance:mode --on'
status, output = subprocess.getstatusoutput(cmnd)
cmnd = "docker exec nextcloud-db-1 sh -c 'exec mysqldump --single-transaction -h localhost -u nextcloud -pl4c1j4yd33Du5lo nextcloud' > /share/docker_data/__backups/nextcloudDB_$now.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)
headers = {
'Content-Type': 'application/json; charset=utf-8',
'x-api-key':'ptr_gfwpbP4AUDhZ4uoPmSfNUGqZq+gescoele8reP/l/GU=',
}
json_data = {
'password': 'l4c1j4yd33Du5lo',
}
response = requests.post('https://portainer.sectorq.eu/api/backup', headers=headers, json=json_data, verify=False)
# Note: json_data will not be serialized by requests
# exactly as it was in the original request.
#data = '{ "password": "" }'
#response = requests.post('https://portainer.sectorq.eu/api/backup', headers=headers, data=data, verify=False)
with open('/share/docker_data/__backups/portainer_snapshot.tar.gz', 'wb') as f:
f.write(response.content)