#!/bin/bash # đŸ›Ąïž SENTINEL INFRA - TARGETED BACKUP SYSTEM v2.3 # --- ⚙ BEÁLLÍTÁSOK (A te környezeti vĂĄltozĂłid alapjĂĄn) --- DB_CONTAINER_NAME="3aa4b73d81e8_shared-postgres" DB_USER="kincses" # <--- BeĂĄllĂ­tva a te POSTGRES_USER Ă©rtĂ©kedre PROJECT_ROOT="/opt/docker/dev/service_finder" NAS_ROOT="/mnt/nas/app_data/backups" TIMESTAMP=$(date +"%Y%m%d_%H%M%S") DOM=$(date +%d) DOW=$(date +%u) mkdir -p $NAS_ROOT/daily $NAS_ROOT/weekly $NAS_ROOT/monthly echo "--- 📩 CĂ©lzott mentĂ©s indĂ­tĂĄsa: $TIMESTAMP ---" # 1. ADATBÁZIS MENTÉS (Streaming - kincses felhasznĂĄlĂłval) DB_BACKUP="db_dump_$TIMESTAMP.sql.gz" echo "🐘 AdatbĂĄzis dump kĂ©szĂ­tĂ©se ($DB_USER felhasznĂĄlĂłval)..." docker exec $DB_CONTAINER_NAME pg_dumpall -U $DB_USER | gzip > /tmp/$DB_BACKUP # EllenƑrzĂ©s: ha 20 bĂĄjt, akkor mĂ©g mindig hiba van SIZE=$(stat -c%s "/tmp/$DB_BACKUP") if [ $SIZE -lt 100 ]; then echo "❌ HIBA: A mentĂ©s sikertelen (mĂ©ret: $SIZE bytes). EllenƑrizd a logokat!" else echo "✅ DB mentĂ©s sikeres ($SIZE bytes)." fi # 2. KIJELÖLT MAPPÁK MENTÉSE FILE_BACKUP="project_files_$TIMESTAMP.tar.gz" echo "📁 FĂĄjlok tömörĂ­tĂ©se..." tar -czf /tmp/$FILE_BACKUP -C $PROJECT_ROOT \ backend docs frontend logs docker-compose.yml .env 2>/dev/null # 3. MÁSOLÁS A NAS-RA (HibakezelĂ©ssel) echo "🚚 MĂĄsolĂĄs a NAS-ra..." for f in $DB_BACKUP $FILE_BACKUP; do if [ -f "/tmp/$f" ]; then cp "/tmp/$f" "$NAS_ROOT/daily/$f" && rm "/tmp/$f" # GFS RotĂĄciĂł if [ "$DOM" == "01" ]; then cp "$NAS_ROOT/daily/$f" "$NAS_ROOT/monthly/"; fi if [ "$DOW" == "7" ]; then cp "$NAS_ROOT/daily/$f" "$NAS_ROOT/weekly/"; fi fi done # 4. TAKARÍTÁS (RĂ©gi szemetek törlĂ©se) find $NAS_ROOT/daily -type f -mtime +7 -delete 2>/dev/null echo "✅ MentĂ©si folyamat sikeresen lezĂĄrva."