Резервне копіювання Weblate з PostgreSQL на основі restic
Примітка: Пов’язані публікації:
- Як встановити сервер Restic REST на Synology NAS для налаштування сервера (ви також можете використовувати інші бекенди)
- Наша конфігурація Weblate на основі
docker-compose: Встановлення Weblate за 10 хвилин з docker-compose та Traefik
Налаштування скрипта резервного копіювання
Спочатку згенеруйте пароль шифрування за допомогою
backup.sh
pwgen 30 > .restic_passwordОбов’язково створіть резервну копію цього пароля окремо, інакше УСІ ВАШІ ДАНІ БУДУТЬ ВТРАЧЕНІ!
Тепер створіть backup.sh у тому ж каталозі, що й docker-compose.yml:
weblate_backup.sh
#!/bin/bash
export NAME=$(basename $(pwd))
export RESTIC_REPOSITORY=rest:http://restic:abc123@10.1.2.3:16383/$NAME
export RESTIC_PASSWORD_FILE=.restic_password
if [ ! -f "${RESTIC_PASSWORD_FILE}" ]; then
echo "Будь ласка, створіть .restic_password з паролем шифрування резервної копії ТА ЗРОБІТЬ РЕЗЕРВНУ КОПІЮ ЦЬОГО ПАРОЛЯ ОКРЕМО!!!"
exit 1
fi
echo "Ініціалізація репозиторію, будь ласка, ігноруйте будь-які помилки 'already exists'"
if [ ! -f ".restic_inited" ]; then
# Запустити команду restic init
restic init
if [ $? -eq 0 ]; then # якщо ініціалізація успішна
# Створити файл ініціалізації
touch ".restic_inited"
echo "Restic ініціалізовано"
fi
fi
# Резервне копіювання
source .env
docker-compose exec -T database pg_dump -U${POSTGRES_USER} ${POSTGRES_DB} | restic --verbose backup --stdin --stdin-filename="${NAME}.sql"
# Резервне копіювання файлів
restic --verbose backup backup.sh docker-compose.yml weblate_data --exclude weblate_data/backups --exclude '**/__pycache__'Автоматичний запуск скрипта резервного копіювання
Див. Як створити таймер та сервіс резервного копіювання systemd за 10 секунд
TL;DR: У каталозі, де знаходиться backup.sh, виконайте
create_backup_service.sh
wget -qO- https://techoverflow.net/scripts/create-backup-service.sh | sudo bash /dev/stdinЯкщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow