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.txtPAKETADI 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.