Генерация файлов зон для bind

bash, perl, python и прочие интерпретируемые скрипты

Модератор: Gen1us2k

Ответить
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Генерация файлов зон для bind

Сообщение Raven » 14 дек 2012, 15:50

Когда-то я публиковал статью про скрипты создающие файлы обратных зон для подсети. Сегодня столкнулся с обратной проблемой - восстановил бекап на свежеустановленом сервере с cPanel. все прошло гладко, за исключением bind - так как в процессе установки панели произошла ошибка и DNSник не был установлен при импорте бекапа естессно не восстановились его данные. А перезаливать ой как не хотелось. За сим и придумался нижеследующий скрипт:

Код: Выделить всё

#!/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]"
В принципе пригодится не только с cPanel но и в любом другом случае, когда нужно нагенерить файлы зон - перепилить его как сами понимаете не составит труда.

После запуска скрипта переносим содержимое /root/devel/bind в /var/named (или где там у вас зоны хранятся), содержимое /root/devel/zones.conf вписываем в named.conf или просто инклюдим его оттуда, меняем права и перезапускаем bind. Все, можно *BEER*
Я не злопамятный, я просто часто ковыряю логи
Ответить

Вернуться в «Скрипты»