# ------------------------------------------------------------------------------------- # 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 CONFLUENCE_RESTORE_HOME=${CONFLUENCE_BACKUP_ROOT}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}/CONFLUENCE-home CONFLUENCE_RESTORE_DB=${CONFLUENCE_BACKUP_ROOT}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}/CONFLUENCE-home if [ -z "${CONFLUENCE_BACKUP_ARCHIVE_NAME}" ]; then print "Usage: $0 " 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_RESTORE_HOME}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}.tgz" ]; then error "'${CONFLUENCE_RESTORE_HOME}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}.tgz' 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}/archive/CONFLUENCE-db" CONFLUENCE_RESTORE_HOME="${CONFLUENCE_RESTORE_ROOT}/confluence" } function copy_archive_to_tmp { rsync -ah ${CONFLUENCE_BACKUP_ROOT}/${CONFLUENCE_BACKUP_ARCHIVE_NAME}/ ${CONFLUENCE_RESTORE_ROOT}/archive/ } function restore_archive { check_config_var "CONFLUENCE_BACKUP_ARCHIVE_ROOT" check_var "CONFLUENCE_BACKUP_ARCHIVE_NAME" check_var "CONFLUENCE_RESTORE_ROOT" run tar --strip-components=2 -xzf "${CONFLUENCE_RESTORE_ROOT}/archive/CONFLUENCE-home/${CONFLUENCE_BACKUP_ARCHIVE_NAME}.tgz" -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/\.tgz$//g' }