24 lines
940 B
Bash
Executable file
24 lines
940 B
Bash
Executable file
#!/bin/bash
|
|
# Backup script for Nextcloud in a kubernetes cluster
|
|
|
|
BACKUP_DEST=/mnt/APPS/git/backups
|
|
|
|
# Retrieve container names
|
|
nextcloud_container=$( docker ps --format "{{.Names}}" | grep hugocloud-nextcloud_hugocloud-nextcloud )
|
|
database_container=$( docker ps --format "{{.Names}}" | grep hugocloud-postgresql_hugocloud-postgresql )
|
|
|
|
# Abort entire script if any command fails
|
|
set -e
|
|
|
|
# Turn on maintenance mode
|
|
docker exec --user www-data "${nextcloud_container}" php occ maintenance:mode --on
|
|
|
|
# Database backup
|
|
>&2 echo "Backing up database"
|
|
docker exec --env-file ./evars.txt "${database_container}" pg_dump "nextcloud" -cwv -h "localhost" -U "nextcloud" -f /tmp/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
|
|
docker cp "${database_container}":/tmp/nextcloud-sqlbkp_$(date +"%Y%m%d").bak /mnt/APPS/git/backups
|
|
|
|
# Turn off maintenance mode
|
|
docker exec --user www-data "${nextcloud_container}" php occ maintenance:mode --off
|
|
|
|
>&2 echo "Done"
|