Код: Выделить всё
#!/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. Все, можно

