This repository has been archived on 2022-10-21. You can view files and clone it, but cannot push or open issues or pull requests.
confluence-backup/archive-tar.sh
2022-10-21 10:40:45 -07:00

61 lines
2.2 KiB
Bash

# -------------------------------------------------------------------------------------
# An archive strategy using Tar and Gzip
# -------------------------------------------------------------------------------------
check_command "tar"
function archive_backup {
check_config_var "CONFLUENCE_BACKUP_ARCHIVE_ROOT"
check_config_var "INSTANCE_NAME"
check_config_var "CONFLUENCE_BACKUP_ROOT"
mkdir -p "${CONFLUENCE_BACKUP_ARCHIVE_ROOT}"
CONFLUENCE_BACKUP_ARCHIVE_NAME="${INSTANCE_NAME}-${TIMESTAMP}.tar.gz"
run tar -czf "${CONFLUENCE_BACKUP_ARCHIVE_ROOT}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}" -C "${CONFLUENCE_BACKUP_ROOT}" .
}
function prepare_restore_archive {
CONFLUENCE_BACKUP_ARCHIVE_NAME=$1
if [ -z "${CONFLUENCE_BACKUP_ARCHIVE_NAME}" ]; then
print "Usage: $0 <backup-snapshot>"
if [ ! -d "${CONFLUENCE_BACKUP_ARCHIVE_ROOT}" ]; then
error "'${CONFLUENCE_BACKUP_ARCHIVE_ROOT}' does not exist!"
else
available_backups
fi
exit 99
fi
if [ ! -f "${CONFLUENCE_BACKUP_ARCHIVE_ROOT}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}.tar.gz" ]; then
error "'${CONFLUENCE_BACKUP_ARCHIVE_ROOT}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}.tar.gz' does not exist!"
available_backups
exit 99
fi
# Setup restore paths
CONFLUENCE_RESTORE_ROOT=$(mktemp -d /tmp/confluence.diy-restore.XXXXXX)
CONFLUENCE_RESTORE_DB="${CONFLUENCE_RESTORE_ROOT}/confluence-db"
CONFLUENCE_RESTORE_HOME="${CONFLUENCE_RESTORE_ROOT}/confluence-home"
CONFLUENCE_RESTORE_DATA_STORES="${CONFLUENCE_RESTORE_ROOT}/confluence-data-stores"
}
function restore_archive {
check_config_var "CONFLUENCE_BACKUP_ARCHIVE_ROOT"
check_var "CONFLUENCE_BACKUP_ARCHIVE_NAME"
check_var "CONFLUENCE_RESTORE_ROOT"
run tar -xzf "${CONFLUENCE_BACKUP_ARCHIVE_ROOT}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}.tar.gz" -C "${CONFLUENCE_RESTORE_ROOT}"
}
function cleanup_old_archives {
# Cleanup of old backups is not currently implemented
no_op
}
function available_backups {
check_config_var "CONFLUENCE_BACKUP_ARCHIVE_ROOT"
print "Available backups:"
# Drop the .tar.gz extension, to make it a backup identifier
ls "${CONFLUENCE_BACKUP_ARCHIVE_ROOT}" | sed -e 's/\.tar\.gz$//g'
}