#!/bin/bash # Variables export BORG_BACKUP_DIRECTORY="/mnt/borgbackup/borg" # Validate BORG_PASSWORD if [ -z "$BORG_PASSWORD" ]; then echo "BORG_PASSWORD is not allowed to be empty." exit 1 fi # Export defaults export BORG_PASSPHRASE="$BORG_PASSWORD" export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes # Validate BORG_MODE if [ "$BORG_MODE" != backup ] && [ "$BORG_MODE" != restore ] && [ "$BORG_MODE" != check ]; then echo "No correct BORG_MODE mode applied. Valid are 'backup' and 'restore'." exit 1 fi export BORG_MODE # Run the backup script if ! bash /backupscript.sh; then FAILED=1 fi # Remove lockfile rm -f "/nextcloud_aio_volumes/nextcloud_aio_database_dump/backup-is-running" # Get a list of all available borg archives set -x borg list "$BORG_BACKUP_DIRECTORY" | grep "nextcloud-aio" | awk -F " " '{print $1","$3,$4}' > "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/backup_archives.list" chmod +r "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/backup_archives.list" set +x if [ -n "$FAILED" ]; then if [ "$BORG_MODE" = backup ]; then # Add file to Nextcloud container so that it skips any update the next time touch "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/skip.update" chmod 777 "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/skip.update" fi exit 1 fi exec "$@"