Einfaches InvenTree-Docker-Backup mit restic
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
# restic init-Befehl ausführen
restic init
if [ $? -eq 0 ]; then # if init successful
# Initialisierungsdatei erstellen
touch ".restic_inited"
echo "Restic initialized"
fi
fi
# PostgreSQL-Backup im Streaming-Modus ausführen
source .env
docker-compose exec -T inventree-db pg_dump -U${INVENTREE_DB_USER} ${INVENTREE_DB_NAME} | restic --verbose backup --stdin --stdin-filename="inventree-pgdump.sql"
# Backup directories and files
echo "Backing up with restic..."
restic --verbose backup \
inventree_data \
backup.sh \
docker-compose.yml \
--exclude "**/__pycache__" \
--exclude "inventree_data/static" \
--exclude "inventree_data/pgdb" \
--exclude "inventree_data/backup"
# OPTIONAL: Forget old backups and prune
# Adjust these retention policies as needed:
# --keep-daily 31 # 31 tägliche Snapshots behalten
# --keep-weekly 52 # 52 wöchentliche Snapshots behalten
# --keep-monthly 24 # 24 monatliche Snapshots behalten
# --keep-yearly 10 # 10 jährliche Snapshots behalten
restic forget --keep-hourly 168 --keep-daily 31 --keep-weekly 52 --keep-monthly 24 --keep-yearly 10 --prune
echo "Backup complete!"Ähnliche Beiträge nach Kategorie:
InvenTree
Wenn dieser Beitrag dir geholfen hat, erwäge, mir einen Kaffee zu spendieren oder per PayPal zu spenden, um die Recherche und Veröffentlichung neuer Beiträge auf TechOverflow zu unterstützen