#!/usr/bin/env bash set -Eeuo pipefail IFS=$'\n\t' # ========================================== # 1. KONFIGURASI DAFTAR FOLDER & DOMAIN # ========================================== TEMPT_FOLDERS=("tempt1" "tempt2" "tempt3" "tempt4" "tempt5" "tempt6" "tempt7" "tempt8" "tempt9" "tempt10" "tempt11") DOMAINS=( "mimpitoto.net" "jnetoto88slot.com" "kitoto.org" "kirintoto1.net" "dana99slot.net" "kiki8.net" "akarjp.net" "kupu88.org" "ace96.org" "oregon12.net" "master99.me" "pepsi99slot.com" "dominobet88a.com" "hiu88.info" "milo77.vip" "panda55bet.com" "gudang77s.org" "gudang88slot.org" "joki77slot.net" "winbet77a.com" "winbet99.info" "berkah77.info" "ayubet-id.com" "titan88bet.net" "bomtoto1.com" ) # File/Folder yang WAJIB DISIMPAN (TIDAK DIHAPUS) KEEP=( ".htaccess" "cgi-bin" ".well-known" "upload" ) trap 'echo "❌ ERROR (baris $LINENO). STOP. Script dihentikan."; exit 1' ERR # ========================================== # PHASE 1: VALIDASI & SCAN TARGET PEMBERSIHAN # ========================================== targets=() echo "🔍 Memulai Scan di ${#TEMPT_FOLDERS[@]} folder utama..." for tempt in "${TEMPT_FOLDERS[@]}"; do BASE="/home/dandanil/public_html/${tempt}" real_base="$(realpath -m "$BASE")" if [[ ! -d "$real_base" ]]; then echo "âš ī¸ BASE folder tidak ada (Dilewati): $real_base" continue fi for domain in "${DOMAINS[@]}"; do [[ "$domain" =~ ^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ ]] || { echo "❌ Domain tidak valid: $domain"; exit 1; } DIR="${BASE}/${domain}" # Skip jika folder domain tidak ada di tempt X ini [[ -d "$DIR" ]] || continue real_dir="$(realpath -m "$DIR")" [[ "$real_dir" == "$real_base/"* ]] || { echo "❌ Unsafe DIR: $real_dir"; exit 1; } shopt -s nullglob dotglob for file in "$DIR"/*; do base_name="$(basename -- "$file")" skip=false for k in "${KEEP[@]}"; do if [[ "$base_name" == "$k" ]]; then skip=true break fi done if [[ "$skip" == true ]]; then continue fi real_file="$(realpath -m "$file")" [[ "$real_file" == "$real_dir/"* ]] || { echo "❌ Unsafe target: $real_file"; exit 1; } targets+=("$file") done done done echo "✅ Phase 1 Selesai. Total item yang akan dihapus: ${#targets[@]}" if [[ "${#targets[@]}" -eq 0 ]]; then echo "â„šī¸ Tidak ada item yang perlu dihapus (Semua bersih / terproteksi)." exit 0 fi echo echo "📌 Contoh item yang akan dihapus (maks 10 item pertama):" i=0 for t in "${targets[@]}"; do echo " - $t" ((++i)) [[ $i -ge 10 ]] && break done [[ ${#targets[@]} -gt 10 ]] && echo " ...dan $(( ${#targets[@]} - 10 )) item lainnya" echo # ========================================== # KONFIRMASI PENGHAPUSAN # ========================================== echo "âš ī¸ PERINGATAN: Kamu akan menghapus ${#targets[@]} item di atas." echo "Ketik YES untuk lanjut hapus:" read -r confirm confirm="${confirm^^}" [[ "$confirm" == "YES" ]] || { echo "⛔ Dibatalkan. Tidak ada file yang dihapus." exit 0 } # ========================================== # PHASE 2: EKSEKUSI PENGHAPUSAN # ========================================== echo "🚀 Memulai proses penghapusan..." for t in "${targets[@]}"; do if [[ -f "$t" ]]; then echo "đŸ—‘ī¸ Hapus file: $t" rm -f -- "$t" elif [[ -d "$t" ]]; then echo "đŸ—‘ī¸ Hapus folder: $t" rm -rf -- "$t" else echo "⚠ Skip (sudah tidak ada): $t" fi done echo "🎉 SELURUH PROSES PEMBERSIHAN SELESAI!"