#!/usr/bin/env bash # ============================================================================ # 01-cek-dns.sh - Cek apakah ikipie.com sudah mengarah ke server hosting # yang BENAR (bukan lagi ke Google/Blogger). # # Pakai: # bash 01-cek-dns.sh -> cek saja # bash 01-cek-dns.sh ikipie.com 103.253.x.x -> cek + bandingkan IP # # Cara menjalankan di server (cPanel > Terminal, atau SSH): # bash 01-cek-dns.sh ikipie.com # ============================================================================ set -u DOMAIN="${1:-ikipie.com}" WWW="www.${DOMAIN}" IPBENAR="${2:-}" echo "===================================================================" echo " CEK DNS : ${DOMAIN}" echo " waktu : $(date '+%d/%m/%Y %H:%M:%S')" echo "===================================================================" # ---------------------------------------------------------------- 1. NAMESERVER echo echo "[1] NAMESERVER (NS)" ns_list="$(dig +short NS "${DOMAIN}" @1.1.1.1 2>/dev/null | sort)" if [ -z "${ns_list}" ]; then ns_list="$(dig +short NS "${DOMAIN}" 2>/dev/null | sort)" fi echo "${ns_list}" | sed 's/^/ /' if echo "${ns_list}" | grep -qi 'rumahweb'; then echo " >> OK : NS menunjuk ke Rumahweb." else echo " >> BAHAYA : NS bukan Rumahweb. Ini sumber masalah terpisah." fi # ---------------------------------------------------------------- 2. A RECORD echo echo "[2] A RECORD APEX (${DOMAIN})" a_list="$(dig +short A "${DOMAIN}" @1.1.1.1 2>/dev/null | sort -u)" [ -z "${a_list}" ] && a_list="$(dig +short A "${DOMAIN}" 2>/dev/null | sort -u)" echo "${a_list}" | grep . | sed 's/^/ /' if [ -z "${a_list}" ]; then echo " >> MASALAH : tidak ada A record sama sekali." elif echo "${a_list}" | grep -qE '^216\.239\.(3[2-9]|[34][0-9])\.'; then echo " >> INILAH PENYEBAB 404 : A record masih menunjuk ke GOOGLE (Blogger)." echo " Google tidak punya blog untuk domain ini -> tampil 'Error 404 (Not Found)!!1'." elif echo "${a_list}" | grep -qE '^(74|142)\.250\.'; then echo " >> A record menunjuk ke GOOGLE (ghs/Blogger). Sama: penyebab 404." else echo " >> A record bukan Google. Lanjut cek apakah IP-nya = server hosting." fi if [ -n "${IPBENAR}" ]; then echo " -- dibandingkan dengan IP server yang Anda masukkan: ${IPBENAR}" if echo "${a_list}" | grep -qx "${IPBENAR}"; then echo " >> COCOK : A record sudah menunjuk ke server hosting Anda." else echo " >> BELUM COCOK : A record harus diubah ke ${IPBENAR}." fi fi # ---------------------------------------------------------------- 3. WWW echo echo "[3] WWW (${WWW})" echo " CNAME : $(dig +short CNAME "${WWW}" @1.1.1.1 2>/dev/null | tr '\n' ' ')" echo " A : $(dig +short A "${WWW}" @1.1.1.1 2>/dev/null | tr '\n' ' ')" if dig +short CNAME "${WWW}" @1.1.1.1 2>/dev/null | grep -qi 'ghs.google'; then echo " >> INILAH PENYEBAB 404 untuk www : CNAME masih ke ghs.google.com." echo " Ganti menjadi A ${IPBENAR:-} (atau CNAME ke ${DOMAIN})." fi # ---------------------------------------------------------------- 4. SOA / umur edit zona echo echo "[4] SOA (serial = kapan zona DNS terakhir diubah)" dig +short SOA "${DOMAIN}" @1.1.1.1 2>/dev/null | sed 's/^/ /' # ---------------------------------------------------------------- 5. RESPONS HTTP echo echo "[5] RESPONS WEB" for u in "http://${DOMAIN}/" "https://${DOMAIN}/"; do out="$(curl -sS -o /dev/null -w 'kode=%{http_code} ip=%{remote_ip}' --max-time 15 "${u}" 2>&1)" printf ' %-28s %s\n' "${u}" "${out}" done judul="$(curl -sS --max-time 15 "http://${DOMAIN}/" 2>/dev/null | grep -ioE '[^<]*' | head -1)" [ -n "${judul}" ] && echo " judul halaman : ${judul}" # ---------------------------------------------------------------- SIMPULAN echo echo "===================================================================" if echo "${a_list}" | grep -qE '^216\.239\.|^74\.250\.'; then echo " SIMPULAN : DNS SALAH. Domain masih diarahkan ke Google/Blogger." echo " Perbaiki A record di panel DNS Rumahweb LEBIH DULU." echo " Memasang ulang WordPress TIDAK akan mengubah apa pun." else echo " SIMPULAN : A record tidak lagi menunjuk ke Google." echo " Kalau situs masih 404, lanjutkan ke 02-cek-server.sh." fi echo "==================================================================="