Код: Выделить всё
#!/bin/bash
serial="`date +%Y%m%d`00"
for user in `ls /var/cpanel/users`; do # дергаем список файлов с нужной нам инфой
domain=`cat /var/cpanel/users/${user} | grep "DNS="` # Грепаем файл на предмет наличия домена
domain=${domain:4} # Отсекаем лишнее - начинаем читать после 4-го символа
ip=`cat /var/cpanel/users/${user} | grep "IP="` # То же самое с IP-адресом
ip=${ip:3}
echo -e "\$ORIGIN ${domain}.
\$TTL 14400
@ 86400 IN SOA ns1.mydns.kg. admin.${domain}. (
${serial} ; serial
86400 ; refresh
7200 ; retry
3600000 ; expire
86400 ; minimum
)
86400 IN NS ns1.mydns.kg.
86400 IN NS ns2.mydns.kg.
14400 IN MX 0 mail.${domain}.
14400 IN A ${ip}
www 14400 IN A ${ip}
ftp 14400 IN A ${ip}
mail 14400 IN A ${ip}
whm 14400 IN A ${ip}
cpanel 14400 IN A ${ip}
webmail 14400 IN A ${ip}
webdisk 14400 IN A ${ip}
${domain}. 14400 IN TXT \"v=spf1 ip4:${ip} a mx ~all\"
" > /root/devel/bind/${domain}.zone
if [ ! -e /root/devel/zones.conf ]; then
touch /root/devel/zones.conf
fi
echo -e "zone \"${domain}\" {
type master;
file \"/var/named/${domain}.conf\";
};
" >> /root/devel/zones.conf
done
echo "[DONE]"
После запуска скрипта переносим содержимое /root/devel/bind в /var/named (или где там у вас зоны хранятся), содержимое /root/devel/zones.conf вписываем в named.conf или просто инклюдим его оттуда, меняем права и перезапускаем bind. Все, можно
