Restic-basiertes Backup für Weblate mit PostgreSQL

Hinweis: Verwandte Beiträge:

Konfigurieren des Backup-Skripts

Generieren Sie zuerst das Verschlüsselungspasswort mit

backup.sh
pwgen 30 > .restic_password

Stellen Sie sicher, dass Sie dieses Passwort separat sichern, sonst GEHEN ALLE IHRE DATEN VERLOREN!

Erstellen Sie nun backup.sh im selben Verzeichnis wie 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__'

Automatisches Starten des Backup-Skripts

Siehe How To Create A Systemd Backup Timer & Service In 10 Seconds

TL;DR: Führen Sie im Verzeichnis, in dem backup.sh sich befindet, Folgendes aus:

create_backup_service.sh
wget -qO- https://techoverflow.net/scripts/create-backup-service.sh | sudo bash /dev/stdin

Check out similar posts by category: Restic, Backup