Добавить в корзинуПозвонить
Найти в Дзене
Записки джировика

Восстановление Docker-версии Jira из бэкапа

Создадим файл restore_confluence.sh и добавим в него код: sudo vim restore_confluence.sh #!/bin/bash
# === Настройки ===
CONFLUENCE_CONTAINER="confluence"
DB_CONTAINER="confluence-postgres"
DB_USER="confluenceuser"
DB_NAME="confluencedb2"
BACKUP_DIR="/var/backups/confluence"
LATEST_DB_BACKUP=$(ls -t $BACKUP_DIR/confluence_db_backup_*.sql | head -n 1)
LATEST_DATA_BACKUP=$(ls -t $BACKUP_DIR/confluence_data_*.tar.gz | head -n 1)
# Проверяем наличие бэкапов
if [[ -z "$LATEST_DB_BACKUP" || -z "$LATEST_DATA_BACKUP" ]]; then
echo "Ошибка: Не найдено файлов бэкапа!" >&2
exit 1
fi
echo "[$(date)] Начинаем восстановление Confluence..." >> /tmp/restore.log
#1️⃣ Остановка контейнера Confluence
echo "Остановка Confluence..."
sudo docker stop $CONFLUENCE_CONTAINER
# 2️⃣ Восстановление данных Confluence
echo "Восстановление файлов Confluence..."
sudo docker run --rm -v confluence_data:/data -v $BACKUP_DIR:/backup alpine tar xzvf /backup/$(basename $LATEST_DATA_BACKUP) -C /data
# 3️⃣ Вос
Оглавление

1. Создание скрипта восстановления

Создадим файл restore_confluence.sh и добавим в него код:

sudo vim restore_confluence.sh

#!/bin/bash

# === Настройки ===
CONFLUENCE_CONTAINER="confluence"
DB_CONTAINER="confluence-postgres"
DB_USER="confluenceuser"
DB_NAME="confluencedb2"
BACKUP_DIR="/var/backups/confluence"
LATEST_DB_BACKUP=$(ls -t $BACKUP_DIR/confluence_db_backup_*.sql | head -n 1)
LATEST_DATA_BACKUP=$(ls -t $BACKUP_DIR/confluence_data_*.tar.gz | head -n 1)

# Проверяем наличие бэкапов
if [[ -z "$LATEST_DB_BACKUP" || -z "$LATEST_DATA_BACKUP" ]]; then
echo "Ошибка: Не найдено файлов бэкапа!" >&2
exit 1
fi

echo "[$(date)] Начинаем восстановление Confluence..." >> /tmp/restore.log

#1️⃣ Остановка контейнера Confluence
echo "Остановка Confluence..."
sudo docker stop $CONFLUENCE_CONTAINER

# 2️⃣ Восстановление данных Confluence
echo "Восстановление файлов Confluence..."
sudo docker run --rm -v confluence_data:/data -v $BACKUP_DIR:/backup alpine tar xzvf /backup/$(basename $LATEST_DATA_BACKUP) -C /data

# 3️⃣ Восстановление базы данных
echo "Сброс БД..."
sudo docker exec -i $DB_CONTAINER psql -U $DB_USER -d postgres -c "DROP DATABASE $DB_NAME;"
sudo docker exec -i $DB_CONTAINER psql -U $DB_USER -d postgres -c "CREATE DATABASE $DB_NAME OWNER $DB_USER;"

echo "Загрузка бэкапа БД..."
sudo docker exec -i $DB_CONTAINER psql -U $DB_USER -d $DB_NAME < $LATEST_DB_BACKUP

# 4️⃣ Запуск контейнера Confluence
echo "Запуск Confluence..."
sudo docker start $CONFLUENCE_CONTAINER

echo "[$(date)] Восстановление завершено!" >> /tmp/restore.log

2. Запуск скрипта

Выполним запуск скрипта:

bash restore_confluence.sh

ВАЖНО!!!! После восстановления Confluence из бэкапа необходимо сделать реиндексацию, иначе восстановленные данные не будут отображаться!!!

3. Что делает этот скрипт?

  • Останавливает Confluence.
  • Находит последний бэкап БД и данных Confluence.
  • Восстанавливает файлы Confluence из .tar.gz.
  • Пересоздаёт базу данных и загружает в неё дамп.
  • Запускает Confluence.

4. Дополнительные опции

  • Восстановление конкретного бэкапа (указать вручную):LATEST_DB_BACKUP="/var/backups/confluence/confluence_db_backup_2025-02-23_03-00-00.sql" LATEST_DATA_BACKUP="/var/backups/confluence/confluence_data_2025-02-23_03-00-00.tar.gz"
  • Отладка (детальный лог):bash -x /var/backups/confluence/restore_confluence.sh

Итог

Теперь можно восстановить Confluence в любой момент одной командой. Если что-то не работает, проверьте restore.log:

cat /tmp/restore.log

Готово! 🚀