From 556eb5abf3f2b17dad90f26931d26e4966b805e6 Mon Sep 17 00:00:00 2001 From: Jan Krebs Date: Thu, 19 Nov 2020 16:01:11 +0100 Subject: [PATCH] add backup and restore scripts --- infrastrucure/docker/image/resources/backup.sh | 6 ++++++ infrastrucure/docker/image/resources/restore.sh | 12 ++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 infrastrucure/docker/image/resources/backup.sh create mode 100644 infrastrucure/docker/image/resources/restore.sh diff --git a/infrastrucure/docker/image/resources/backup.sh b/infrastrucure/docker/image/resources/backup.sh new file mode 100644 index 0000000..9f5d1b2 --- /dev/null +++ b/infrastrucure/docker/image/resources/backup.sh @@ -0,0 +1,6 @@ +set -o pipefail +# backup database dump +pg_dump -d $(cat ${POSTGRES_DB_FILE}) -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password --serializable-deferrable --clean --no-privileges | \ +restic -r $RESTIC_REPOSITORY --verbose backup --stdin --tag DB_Backup +# backup nextcloud filesystem +restic -r $RESTIC_REPOSITORY backup /var/backups/ --tag Nextcloud_Filesystem diff --git a/infrastrucure/docker/image/resources/restore.sh b/infrastrucure/docker/image/resources/restore.sh new file mode 100644 index 0000000..6aa09ed --- /dev/null +++ b/infrastrucure/docker/image/resources/restore.sh @@ -0,0 +1,12 @@ +# Restore Nextcloud Filesystem +# Reads restore snapshot_ID from first CLI Argument +restic -r $RESTIC_REPOSITORY restore $1 --target / + +# Delete DB +psql -d template1 -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password -c "DROP DATABASE \"cloud\";" +# Create DB again +psql -d template1 -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password -c "CREATE DATABASE \"cloud\";" +# create folder from db backup +restic -r $RESTIC_REPOSITORY restore $2 --target test-stdin-$2 +# read folder and restore db entries +psql -d $(cat ${POSTGRES_DB_FILE}) -h $POSTGRES_SERVICE -p $POSTGRES_PORT -U $(cat ${POSTGRES_USER_FILE}) --no-password < test-stdin-$2 \ No newline at end of file