Резервное копирование Weblate с PostgreSQL на основе restic
Примечание: Связанные посты:
- Как установить Restic REST Server на 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 "Please create .restic_password with the backup encryption password AND BACKUP THAT PASSWORD SEPARATELY!!!"
exit 1
fi
echo "Initing repo, please ignore any 'already exists' errors"
if [ ! -f ".restic_inited" ]; then
# Run the restic init command
restic init
if [ $? -eq 0 ]; then # if init successful
# Create the initialization file
touch ".restic_inited"
echo "Restic initialized"
fi
fi
# Backup
source .env
docker-compose exec -T database pg_dump -U${POSTGRES_USER} ${POSTGRES_DB} | restic --verbose backup --stdin --stdin-filename="${NAME}.sql"
# Backup files
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/stdinIf this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow