Files
service-finder/backup_manager.sh.old

52 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# 🛡️ DOCKER INFRA - GFS BACKUP SYSTEM (Ubuntu 24.04 Optimized)
# ÚJ ELÉRÉSI UTALOK
PROJECT_ROOT="/opt/docker"
NAS_ROOT="/mnt/nas/app_data/backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
DOM=$(date +%d)
DOW=$(date +%u)
# Szükséges mappák biztosítása a NAS-on
mkdir -p $NAS_ROOT/daily $NAS_ROOT/weekly $NAS_ROOT/monthly
echo "--- 📦 Mentés indítása: $TIMESTAMP ---"
# 1. ADATBÁZIS MENTÉS (Konzisztens SQL Dump)
# A shared-postgres konténerből kimentjük az összes adatbázist
docker exec shared-postgres pg_dumpall -c -U postgres > $PROJECT_ROOT/full_db_dump.sql
# 2. TÖMÖRÍTÉS ÉS KONFIGURÁCIÓK MENTÉSE
# Kizárjuk a nyers adatbázis fájlokat és a felesleges node mappákat
BACKUP_FILE="infra_full_$TIMESTAMP.tar.gz"
tar -czf /tmp/$BACKUP_FILE -C $PROJECT_ROOT \
--exclude='infra/postgres/data' \
--exclude='node_modules' \
--exclude='*.log' \
.
# 3. GFS ROTÁCIÓS MÁSOLÁS
if [ "$DOM" == "01" ]; then
echo "Havi mentés rögzítése..."
cp /tmp/$BACKUP_FILE $NAS_ROOT/monthly/
fi
if [ "$DOW" == "7" ]; then
echo "Heti mentés rögzítése..."
cp /tmp/$BACKUP_FILE $NAS_ROOT/weekly/
fi
# Napi mentés
mv /tmp/$BACKUP_FILE $NAS_ROOT/daily/
# 4. AUTOMATIKUS TAKARÍTÁS (30 napos heti, 1 éves havi mentés megőrzése)
find $NAS_ROOT/daily -type f -mtime +7 -delete
find $NAS_ROOT/weekly -type f -mtime +30 -delete
find $NAS_ROOT/monthly -type f -mtime +365 -delete
# 5. IDEIGLENES SQL DUMP TÖRLÉSE
rm $PROJECT_ROOT/full_db_dump.sql
echo "✅ Mentés sikeresen lezárva: $NAS_ROOT/daily/$BACKUP_FILE"