61 lines
2.2 KiB
Bash
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'
|
|
}
|