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

Бэкапирование Docker-версии Confluence

Автоматизировать создание бэкапов Docker-версии Confluence можно с помощью cron, скрипта на Bash и хранилища (например, локального, удаленного сервера или облака). 🔹 1. Создание Bash-скрипта для бэкапа Создадим скрипт backup_confluence.sh, который: sudo vim backup_confluence.sh В скрипте замените названия контейнеров, БД, пользователя, если они у вас отличаются #!/bin/bash
# Настройки
CONFLUENCE_CONTAINER="confluence"
DB_CONTAINER="confluence-postgres"
DB_USER="confluenceuser"
DB_NAME="confluencedb2"
BACKUP_DIR="/var/backups/confluence"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
# Создаем папку для бэкапов, если её нет
sudo mkdir -p $BACKUP_DIR
echo "[$(date)] Начинаем бэкап Confluence..." >> /tmp/backup.log
# Бэкап базы данных
sudo docker exec $DB_CONTAINER pg_dump -U $DB_USER -d $DB_NAME -f /tmp/confluence_db_backup.sql
sudo docker cp $DB_CONTAINER:/tmp/confluence_db_backup.sql $BACKUP_DIR/confluence_db_backup_$DATE.sql
sudo docker exec $DB_CONTAINER rm /tmp/confluence_db_backup.sql
# Б
Оглавление

Автоматизировать создание бэкапов Docker-версии Confluence можно с помощью cron, скрипта на Bash и хранилища (например, локального, удаленного сервера или облака).

🔹 1. Создание Bash-скрипта для бэкапа

Создадим скрипт backup_confluence.sh, который:

  • Создает бэкап базы данных.
  • Создает архив данных Confluence.
  • Чистит старые бэкапы (например, старше 7 дней).
  • Записывает логи.

sudo vim backup_confluence.sh

В скрипте замените названия контейнеров, БД, пользователя, если они у вас отличаются

#!/bin/bash

# Настройки
CONFLUENCE_CONTAINER="confluence"
DB_CONTAINER="confluence-postgres"
DB_USER="confluenceuser"
DB_NAME="confluencedb2"
BACKUP_DIR="/var/backups/confluence"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")

# Создаем папку для бэкапов, если её нет
sudo mkdir -p $BACKUP_DIR

echo "[$(date)] Начинаем бэкап Confluence..." >> /tmp/backup.log

# Бэкап базы данных
sudo docker exec $DB_CONTAINER pg_dump -U $DB_USER -d $DB_NAME -f /tmp/confluence_db_backup.sql
sudo docker cp $DB_CONTAINER:/tmp/confluence_db_backup.sql $BACKUP_DIR/confluence_db_backup_$DATE.sql
sudo docker exec $DB_CONTAINER rm /tmp/confluence_db_backup.sql

# Бэкап данных Confluence
sudo docker run --rm --volumes-from $CONFLUENCE_CONTAINER -v $BACKUP_DIR:/backup alpine tar czvf /backup/confluence_data_$DATE.tar.gz /var/atlassian/application-data/confluence

# Удаление старых бэкапов (старше 7 дней)
sudo find $BACKUP_DIR -type f -mtime +7 -delete

echo "[$(date)] Бэкап завершен!" >> /tmp/backup.log

📌 Объяснение кода:

  • Создается каталог /var/backups/confluence.
  • Дамп базы данных копируется в этот каталог.
  • Данные confluence архивируются.
  • Старые бэкапы (старше 7 дней) удаляются.
  • В лог (backup.log) записываются действия.

🔹 2. Настройка cron для автоматизации

Открываем редактор cron:

crontab -e

Добавляем строку для ежедневного бэкапа в 3 часа ночи:
0 3 * * * /bin/bash /var/backups/confluence/backup_confluence.sh

-2

Можно проверить выполнение:
cat /tmp/backup.log

🔹 3. Запуск скрипта вручную

Если нужно запустить скрипт принудительно, есть несколько вариантов ручного запуска скрипта

📌 1. Запуск через bash или sh

bash backup_confluence.sh

или

sh backup_confluence.sh

📌 2. Запуск напрямую, если есть права на выполнение

Сначала проверяем права:

ls -l backup_confluence.sh

Если в начале строки нет x (исполняемых прав), добавляем их:

chmod +x backup_confluence.sh

Теперь можно запустить так:

./backup_confluence.sh

📌 3. Запуск с sudo, если нужны root-права

Если скрипт требует суперпользовательских привилегий:

sudo ./backup_confluence.sh

📌 4. Запуск в другом интерпретаторе (если используется #!/bin/bash)

Если внутри скрипта указано #!/bin/bash, но система использует другой интерпретатор, запустите так:

/bin/bash backup_confluence.sh

🔹 Если скрипт не запускается:

  • Проверьте ошибки с помощью bash -x backup_confluence.sh (отладочный режим).
  • Убедитесь, что скрипт выполняется в правильной директории (cd /path/to/script).
  • Проверьте зависимости (docker, pg_dump, tar должны быть установлены).

🔹 3. (Опционально) Загрузка в облако или удаленный сервер

📌 Если нужно отправлять бэкапы на другой сервер по scp:

scp $BACKUP_DIR/confluence_db_backup_$DATE.sql user@remote-server:/remote/backup/path/

scp $BACKUP_DIR/confluence_data_$DATE.tar.gz user@remote-server:/remote/backup/path/

📌 Если использовать S3-хранилище AWS:
aws s3 cp $BACKUP_DIR s3://your-bucket-name/ --recursive

🔹 Итог

✅ Бэкап автоматизируется через cron.
✅ Скрипт чистит старые бэкапы.
✅ Можно расширить его для загрузки в облако.

Готово! 🚀