49 lines
2.7 KiB
Bash
Executable File
49 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================================
|
|
# BACKUP S89 → S202 — ADX DB + Configs + Brain (via SSH direct)
|
|
# Cron: 0 5 * * * /opt/backups/backup-s89.sh >> /opt/backups/logs/s89.log 2>&1
|
|
# ============================================================
|
|
DATE=$(date +%Y%m%d)
|
|
S89=89.167.40.150
|
|
S89_PORT=49222
|
|
RETAIN_DAYS=7
|
|
|
|
echo "[$(date)] === START BACKUP S89 ==="
|
|
|
|
# 1. PostgreSQL dumps via SSH pipe (reliable for large DBs)
|
|
echo "[$(date)] PG dump adx_system (6.6GB)..."
|
|
ssh -o StrictHostKeyChecking=no -p $S89_PORT root@$S89 "PGPASSWORD=admin123 pg_dump -h 127.0.0.1 -U admin adx_system" 2>/dev/null | gzip > /opt/backups/s89/pg/adx_system_${DATE}.sql.gz
|
|
echo "[$(date)] adx_system: $(ls -lh /opt/backups/s89/pg/adx_system_${DATE}.sql.gz | awk "{print \$5}")"
|
|
|
|
echo "[$(date)] PG dump adx_clients (2.8GB)..."
|
|
ssh -o StrictHostKeyChecking=no -p $S89_PORT root@$S89 "PGPASSWORD=admin123 pg_dump -h 127.0.0.1 -U admin adx_clients" 2>/dev/null | gzip > /opt/backups/s89/pg/adx_clients_${DATE}.sql.gz
|
|
echo "[$(date)] adx_clients: $(ls -lh /opt/backups/s89/pg/adx_clients_${DATE}.sql.gz | awk "{print \$5}")"
|
|
|
|
# 2. Configs (rsync)
|
|
echo "[$(date)] Configs rsync..."
|
|
rsync -az --timeout=120 -e "ssh -o StrictHostKeyChecking=no -p $S89_PORT" root@$S89:/opt/wevads/config/ /opt/backups/s89/configs/wevads/ 2>/dev/null
|
|
rsync -az --timeout=120 -e "ssh -o StrictHostKeyChecking=no -p $S89_PORT" root@$S89:/etc/pmta/config /opt/backups/s89/configs/pmta_config 2>/dev/null
|
|
rsync -az --timeout=120 -e "ssh -o StrictHostKeyChecking=no -p $S89_PORT" root@$S89:/etc/apache2/sites-enabled/ /opt/backups/s89/configs/apache/ 2>/dev/null
|
|
|
|
# 3. Arsenal HTML screens
|
|
echo "[$(date)] Arsenal screens..."
|
|
rsync -az --timeout=120 -e "ssh -o StrictHostKeyChecking=no -p $S89_PORT" root@$S89:/opt/wevads-arsenal/public/ /opt/backups/s89/arsenal/ 2>/dev/null
|
|
|
|
# 4. Vault GOLD files
|
|
echo "[$(date)] Vault/GOLD..."
|
|
rsync -az --timeout=120 -e "ssh -o StrictHostKeyChecking=no -p $S89_PORT" root@$S89:/opt/wevads/vault/ /opt/backups/s89/vault/ 2>/dev/null
|
|
|
|
# 5. Crontab
|
|
ssh -o StrictHostKeyChecking=no -p $S89_PORT root@$S89 "crontab -l" 2>/dev/null > /opt/backups/s89/configs/crontab_s89.txt
|
|
|
|
# 6. Brain send configs dump (critical — 9 winners)
|
|
ssh -o StrictHostKeyChecking=no -p $S89_PORT root@$S89 "PGPASSWORD=admin123 pg_dump -h 127.0.0.1 -U admin -t admin.brain_send_configs adx_system" 2>/dev/null | gzip > /opt/backups/s89/configs/brain_winners_${DATE}.sql.gz
|
|
|
|
# 7. Cleanup old dumps
|
|
find /opt/backups/s89/pg/ -name "*.sql.gz" -mtime +$RETAIN_DAYS -delete 2>/dev/null
|
|
find /opt/backups/s89/configs/ -name "brain_*" -mtime +$RETAIN_DAYS -delete 2>/dev/null
|
|
|
|
echo "[$(date)] === BACKUP S89 COMPLETE ==="
|
|
echo "[$(date)] Total: $(du -sh /opt/backups/s89/ | cut -f1)"
|
|
echo ""
|