mirror of
https://github.com/nextcloud/all-in-one.git
synced 2024-12-29 02:00:45 +08:00
6b91fb7ca2
Signed-off-by: Simon L <szaimen@e.mail.de>
55 lines
No EOL
1.8 KiB
Bash
55 lines
No EOL
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
# Variables
|
|
export MOUNT_DIR="/mnt/borgbackup"
|
|
export BORG_BACKUP_DIRECTORY="$MOUNT_DIR/borg"
|
|
|
|
# Validate BORG_PASSWORD
|
|
if [ -z "$BORG_PASSWORD" ] && [ -z "$BACKUP_RESTORE_PASSWORD" ]; then
|
|
echo "Neither BORG_PASSWORD nor BACKUP_RESTORE_PASSWORD are set."
|
|
exit 1
|
|
fi
|
|
|
|
# Export defaults
|
|
if [ -n "$BACKUP_RESTORE_PASSWORD" ]; then
|
|
export BORG_PASSPHRASE="$BACKUP_RESTORE_PASSWORD"
|
|
else
|
|
export BORG_PASSPHRASE="$BORG_PASSWORD"
|
|
fi
|
|
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 ] && [ "$BORG_MODE" != "check-repair" ] && [ "$BORG_MODE" != test ]; then
|
|
echo "No correct BORG_MODE mode applied. Valid are 'backup', 'check', 'restore' and 'test'."
|
|
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
|
|
if borg list "$BORG_BACKUP_DIRECTORY" &>/dev/null; then
|
|
borg list "$BORG_BACKUP_DIRECTORY" | grep "nextcloud-aio" | awk -F " " '{print $1","$3,$4}' > "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/backup_archives.list"
|
|
else
|
|
echo "" > "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/backup_archives.list"
|
|
fi
|
|
chmod +r "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/backup_archives.list"
|
|
|
|
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 "$@" |