#!/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"