mirror of
https://gitlab.sectorq.eu/jaydee/omv_backup.git
synced 2025-07-01 15:48:33 +02:00
build
This commit is contained in:
@ -2,29 +2,38 @@ import subprocess
|
|||||||
import requests
|
import requests
|
||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
|
PASSWORD = "l4c1j4yd33Du5lo"
|
||||||
DATETIME = now.strftime("%Y%m%d%H%M%S")
|
DATETIME = now.strftime("%Y%m%d%H%M%S")
|
||||||
|
os.chdir("/share/docker_data/__backups/")
|
||||||
print("Backup gitlab")
|
print("Backup gitlab")
|
||||||
cmnd = 'docker exec -t gitlab gitlab-backup create SKIP=artifacts,repositories,registry,uploads,builds,pages,lfs,packages,terraform_state'
|
cmnd = 'docker exec -t gitlab gitlab-backup create SKIP=artifacts,repositories,registry,uploads,builds,pages,lfs,packages,terraform_state'
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
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")
|
print("Backup nextcloud")
|
||||||
cmnd = 'docker exec --user www-data nextcloud-app-1 php occ maintenance:mode --on'
|
cmnd = 'docker exec --user www-data nextcloud-app-1 php occ maintenance:mode --on'
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
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)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
cmnd = "docker exec --user www-data nextcloud-app-1 php occ maintenance:mode --off"
|
cmnd = "docker exec --user www-data nextcloud-app-1 php occ maintenance:mode --off"
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
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")
|
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"
|
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)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
os.chdir
|
cmnd = f"zip -P {PASSWORD} kestra_{DATETIME}.sql.zip kestra_{DATETIME}.sql"
|
||||||
|
|
||||||
cmnd = f"zip -P l4c1j4yd33Du5lo kestra_{DATETIME}.sql.zip kestra_{DATETIME}.sql"
|
|
||||||
print(cmnd)
|
|
||||||
status, output = subprocess.getstatusoutput(cmnd)
|
status, output = subprocess.getstatusoutput(cmnd)
|
||||||
|
os.remove(f"kestra_{DATETIME}.sql")
|
||||||
|
|
||||||
|
|
||||||
print("Backup portainer")
|
print("Backup portainer")
|
||||||
headers = {
|
headers = {
|
||||||
@ -33,7 +42,7 @@ headers = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
json_data = {
|
json_data = {
|
||||||
'password': 'l4c1j4yd33Du5lo',
|
'password': PASSWORD,
|
||||||
}
|
}
|
||||||
|
|
||||||
response = requests.post('https://portainer.sectorq.eu/api/backup', headers=headers, json=json_data, verify=True)
|
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)
|
#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:
|
with open(f'/share/docker_data/__backups/portainer_snapshot_{DATETIME}.tar.gz', 'wb') as f:
|
||||||
f.write(response.content)
|
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)
|
Reference in New Issue
Block a user