LINK_SATISI adlı üyeden alıntı: mesajı görüntüle
400 tane domain aldım sunucuya eklemem lazım tek tek eklemektense toplu eklemek istiyorum
bana bu konuda yardımcı olabilecek yol gösterebilecek kimse var mı
05350579988 watsap
Merhaba,

Yöntem 1 :

whmapi1 createacct döngüsü ile yapabilirsiniz ;

#!/bin/bash
# /root/toplu_hesap.sh
CSV="/root/domains.txt"          # her satırda bir domain
PLAN="baslangic"                 # WHM'deki paket adı (WHM > Packages)
EMAIL="admin@mailadresi.com"
LOG="/root/toplu_hesap.log"
OUT="/root/hesap_bilgileri.csv"

echo "domain,kullanici,sifre" > "$OUT"

while read -r domain; do
    domain=$(echo "$domain" | tr -d '\r' | xargs | tr 'A-Z' 'a-z')
    [ -z "$domain" ] && continue

    # kullanıcı adı üret (cPanel: max 16 karakter, harfle başlamalı)
    base=$(echo "${domain%%.*}" | tr -dc 'a-z0-9' | cut -c1-8)
    [ -z "$base" ] && base="user"
    case "$base" in [0-9]*) base="u$base";; esac

    user="${base}$RANDOM"; user=$(echo "$user" | cut -c1-16)
    while id "$user" &>/dev/null; do
        user="${base}$RANDOM"; user=$(echo "$user" | cut -c1-16)
    done

    pass=$(openssl rand -base64 24 | tr -dc 'A-Za-z0-9' | cut -c1-16)

    res=$(whmapi1 createacct username="$user" domain="$domain" \
          password="$pass" plan="$PLAN" contactemail="$EMAIL" \
          --output=json 2>&1)

    if echo "$res" | grep -Eq '"result" *: *"?1"?'; then
        echo "[OK]   $domain -> $user" | tee -a "$LOG"
        echo "$domain,$user,$pass" >> "$OUT"
    else
        echo "[HATA] $domain :: $res" | tee -a "$LOG"
    fi

    sleep 3
done < "$CSV"
Çalıştırma (kopmaması için mutlaka screen içinde):

chmod +x /root/toplu_hesap.sh
screen -S toplu
/root/toplu_hesap.sh
# Ctrl+A, D ile ayrıl; screen -r toplu ile geri dön
400 hesap ≈ 30–45 dakika sürer. Şifreler /root/hesap_bilgileri.csv içinde kalır.

Apache restart yükü: WHM > Tweak Settings > "Number of seconds to wait before restarting Apache" değerini 60–300 yapın, yoksa her hesapta konfigürasyon derlenir ve sunucu boğulur.

Yöntem 2:

En kolay yol: WHM > Terminal'e tek satır yapıştır SSH bile gerekmiyor. WHM > Server Configuration > Terminal'i açın.

while read d; do d=$(echo $d|tr -d '\r'); [ -z "$d" ] && continue; u=$(echo ${d%%.*}|tr -dc a-z0-9|cut -c1-8)$RANDOM; u=${u:0:16}; p=$(openssl rand -hex 8); whmapi1 createacct username=$u domain=$d password=$p plan=PAKETADI contactemail=info@mailadresi.com >/dev/null; echo "$d,$u,$p" >> /root/liste.csv; echo "bitti: $d"; sleep 3; done < /root/domains.txt
PAKETADI yerine WHM > Packages'taki paket adını yazın. Sonuç /root/liste.csv dosyasında.

Hepsi tek hesap altına addon domain olacaksa onun da tek satırı:

while read d; do d=$(echo $d|tr -d '\r'); [ -z "$d" ] && continue; cpapi2 --user=KULLANICI AddonDomain addaddondomain dir="public_html/$d" newdomain=$d subdomain=$(echo $d|tr -dc a-z0-9); done < /root/domains.txt
iyi çalışmalar.