Как увеличить серийный номер в зоне bind9 dns

У меня есть зона DNS, у которой есть серийный номер: 2015040500

Сегодня я собираюсь добавить там записи CNAME, поэтому меня интересует, как увеличить серийный номер, я хочу изменить его на основе сегодняшней даты, например, это будет: 2015042200 или просто увеличить его на один, так что это будет 2015040501?

  • dnsmasq как только dns, map mac-address для hostname для динамического ip
  • Почему вывод команды hostname отличается от / etc / hosts?
  • CentOS 7 имя хоста netbios / fqdn output
  • Как заблокировать субдомен с помощью dnsmasq?
  • «Поддельный» DNS для одного хоста
  • DHCP-сервер со статическим IP-адресом, не разрешающим имена хостов (клиенты делают)
  • как устранить неполадки в имени домена перед повторным указателем Nameservers
  • Bind9 отказал в запросе
  • 2 Solutions collect form web for “Как увеличить серийный номер в зоне bind9 dns”

    Вы можете сделать все, что угодно, единственное, что вы должны убедиться, это то, что новый серийный номер больше старого.

    Сказав это, я рекомендовал бы подход, основанный на временной шкале, по схеме, подобной:

    YYYYMMDDxx 

    где xx начинается с 00 и увеличивается для всех изменений в этот конкретный день (при редактировании в другой день вы сбросите xx на 00 )

    Основным преимуществом этой схемы является то, что вы также знаете дату последней модификации вашего зонного файла с первого взгляда.

    Он также увеличивает серийный номер.

    Альтернативой является запуск с 1 и просто увеличение при каждом редактировании файла.

    Если серийный номер уже основан на 2015040500 времени (и 2015040500 очень похож на него), вы, вероятно, придерживаетесь этого решения (даже если оно не сделано вами) и используйте логический преемник 2015042200

    Сценарий bash, который ищет:

      12345 ; Serial 

    в каталоге /etc/bind/zones . Он должен соответствовать любому числу раньше ; Serial ; Serial (с учетом регистра). И замените его на формат YYYYMMDDxx .

     #!/bin/bash ZONES_PATH="/etc/bind/zones" DATE=$(date +%Y%m%d) # we're looking line containing this comment NEEDLE="Serial" for ZONE in $(ls -1 $ZONES_PATH) ; do curr=$(/bin/grep -e "${NEEDLE}$" $ZONES_PATH/${ZONE} | /bin/sed -n "s/^\s*\([0-9]*\)\s*;\s*${NEEDLE}\s*/\1/p") # replace if current date is shorter (possibly using different format) if [ ${#curr} -lt ${#DATE} ]; then serial="${DATE}00" else prefix=${curr::-2} if [ "$DATE" -eq "$prefix" ]; then # same day num=${curr: -2} # last two digits from serial number num=$((10#$num + 1)) # force decimal representation, increment serial="${DATE}$(printf '%02d' $num )" # format for 2 digits else serial="${DATE}00" # just update date fi fi /bin/sed -i -e "s/^\(\s*\)[0-9]\{0,\}\(\s*;\s*${NEEDLE}\)$/\1${serial}\2/" ${ZONES_PATH}/${ZONE} echo "${ZONE}: " grep "; ${NEEDLE}$" $ZONES_PATH/${ZONE} done и #!/bin/bash ZONES_PATH="/etc/bind/zones" DATE=$(date +%Y%m%d) # we're looking line containing this comment NEEDLE="Serial" for ZONE in $(ls -1 $ZONES_PATH) ; do curr=$(/bin/grep -e "${NEEDLE}$" $ZONES_PATH/${ZONE} | /bin/sed -n "s/^\s*\([0-9]*\)\s*;\s*${NEEDLE}\s*/\1/p") # replace if current date is shorter (possibly using different format) if [ ${#curr} -lt ${#DATE} ]; then serial="${DATE}00" else prefix=${curr::-2} if [ "$DATE" -eq "$prefix" ]; then # same day num=${curr: -2} # last two digits from serial number num=$((10#$num + 1)) # force decimal representation, increment serial="${DATE}$(printf '%02d' $num )" # format for 2 digits else serial="${DATE}00" # just update date fi fi /bin/sed -i -e "s/^\(\s*\)[0-9]\{0,\}\(\s*;\s*${NEEDLE}\)$/\1${serial}\2/" ${ZONES_PATH}/${ZONE} echo "${ZONE}: " grep "; ${NEEDLE}$" $ZONES_PATH/${ZONE} done 

    Примечание: вы не должны делать более 99 модификаций в течение одного дня 🙂

    Interesting Posts

    Как установить Ubuntu из Suse?

    Почему удаленная консоль не использует весь размер терминала

    Ошибки при вызове веб-службы с использованием команды «Curl» с терминала Unix

    Отслеживание пути оболочки в Emacs

    не может получить hello world shell script для запуска в FreeBSD

    Понимание / etc / aliases и что он делает

    Перемещенная папка CGI-Bin по ошибке, теперь сайт не будет работать

    Что такое pam_unix2 / почему он не существует в некоторых дистрибутивах?

    Rsync –delete-во время (во время чего?)

    Найти и заменить с помощью sed с помощью подстановочных знаков при поиске и замене

    Grub-customizer: ошибка при загрузке разделяемых библиотек: libarchive.so.13: невозможно открыть файл общих объектов: нет такого файла или каталога

    Loop в скрипте на удаленном сервере не работает

    вкладка-расширение и "./" bash shell

    FC16: невозможно войти в систему через LightDM или GDM (но «startx» отлично работает)

    Кросс-компиляция GLIBC для моего ARM SoC

    Linux и Unix - лучшая ОС в мире.