cPanel kullanıcıları için taşıma sonrası ya da güncelleme sonrası sorun ve uğraş çıkaran bir konuda toplu dns resetlemesidir. Bu işlemi panelden tek tek elle yapmak gerekir ya da ssh ile cpanelin verdiği killdns ve add_dns scriptlerini parametreleri ile her domain için ayrı ayrı çalıştırmak gerekir.

Bu iki scriptten killdns çalıştırıldığı zaman o domaine ait dns kaydını siler. Silinen dns kaydını add_dns ile eklersiniz ancak bir çok kayıt eksik gelir ve ayrıca dkim keyide oluşturulmaz. Bu sebepten küçük bir script hazırladım. Script bir döngü ile gereken tüm cPanel scriptlerini çalıştırarak hem dns kayıtlarınızı sıfırlayacak hemde dkim keylerinizi oluşturacak.

Bunların önüne geçip düzgün bir dns kaydı oluşturmak için yazımın devamında size vereceğim script ve mail sorunlarınızda da size faydası olacak dmarc ve spf kayıtları ile öncelikle dns şablonlarımızı düzenleyeceğiz.

İlk olarak whm de oturum açın ve dns fonksiyonları kısmına gelin.

DNS Functions > Edit Zone Templates

  • simple
  • standart
  • standartvirtualftp

Bu üç şablona aşağıda verdiğim dns kayıtlarını ekleyin.

%domain%.       14400   IN      TXT     "v=spf1 ip4:%ip% a mx ptr include:%domain% ~all"
_dmarc  14400   IN      TXT     "v=DMARC1; sp=reject; pct=100; p=quarantine adkim=r aspf=r rua=mailto:postmaster@%domain% ruf=mailto:postmaster@%domain%"
pop     14400   IN      CNAME   %domain%.
imap    14400   IN      CNAME   %domain%.
smtp    14400   IN      CNAME   %domain%.

Yukarıdaki kayıtları dns şablonlarımıza ekledikten sonra, tüm hesapların dns kayıtlarını sıfırlamak için bir script hazırlayıp çalıştıralım.



NOT: Bu işlemleri yapmadan şunu unutmayınız ! Aşağıdaki script ya da cpanelin içindeki scriptleri de kullansanız, script dns kaydınızı silip oluşturacağından hesaba özel olarak eklediğiniz A kaydı ile bağlı IP' ler silindikten sonra geri gelmeyecektir. İşlemleri başlatmadan bu kayıtlarınızı yedek almanızı şiddetle öneririm.

İlk olarak gereken scriptlerin çalışmasını inceleyelim.



cPanel DNS Kaydını Silme

/scripts/killdns kadirhanoglu.com



cPanel DNS Kaydı Oluşturma

/scripts/add_dns --domain=kadirhanoglu.com --owner=kadirhan



cPanel DKIM Key Oluşturma

Tek bir hesap için DKIM kaydı oluşturmak isterseniz aşağıdaki komutu kullanabilirsiniz. Bu size diğer durumlarda da gerekebilir.

/scripts/enable_spf_dkim_globally -x --user=kadirhan

Birden çok hesap için DKIM kaydı oluşturmak için aşağıdaki komutu kullanabilirsiniz.

/scripts/enable_spf_dkim_globally -x




Multi DNS Zone Reset Script

Hazırladığımız scriptin açık kodları aşağıdadır. Dilerseniz sunucunuzda bir yerde istediğiniz isimle .sh dosyası olarak kaydedip kullanın dilerseniz benim verdiğim komutla cpanele script olarak ekleyerek kullanın. Dosya olarak benim verdiğimin tek farkı biraz renklendirmelerle göze hitap eden bir halde olmasıdır.

Script cpanelin domain ve domaine bağlı kullanıcı bilgisini tuttuğu dosyadan sadece domain adı ve kullanıcıyı alarak döngü ile cpanel scriptlerinde gereken parametrelerde yerine koyuyor. Bu sayede siz tek bir komutla tüm dns kayıtlarını sıfırlamış oluyorsunuz.

# Author: Kadir Hanoglu & Mehmet Hanoglu ( Hanoglu Kardesler )
# Web: https://www.kadirhanoglu.com
# Mail: mail@kadirhanoglu.com
# File: multi_dnszone_reset
# cPanel Multi DNS Reset Script ( DNS Reset and DKIM Key Generator )

cat /etc/trueuserdomains | while IFS=': ' read domain user; do
        echo "-----------------------------------------------------------"
        echo "DNS Domain    $domain ( $user )"
        /scripts/killdns $domain
        echo "DNS Record Cleaned"
        /scripts/add_dns --domain=$domain --owner=$user
        echo "DNS Record Created"
        /scripts/enable_spf_dkim_globally -x --user=$user
        echo "DKIM Record Added"
        echo "-----------------------------------------------------------"
        sleep .3
done
service named restart



Kestirme yol;

Yukarıdaki işlemlerle uğraşmadan aşağıdaki komutlarla scripti indirip direkt çalıştırabilirsiniz.

wget https://get.kadirhanoglu.com/bash/multi_dnszone_reset.sh
mv multi_dnszone_reset.sh /usr/local/cpanel/scripts/multi_dnszone_reset
chmod 0755 /scripts/multi_dnszone_reset
/scripts/multi_dnszone_reset

Her hesap için bir saniye olarak hesaplayın. İşlem süresi bu zaman zarfında tamamlanacaktır.