BITFOX® | LÖSUNGEN | SERVICE | LOGIN | BLOG | KONTAKT

Sonntag, 17. März 2019

Zonen und das .jnl-File

Immer wieder etwas nervig:
Der Nameserver/bind schreibt für dynamische DNS-Updates ("ddns") deine Deltas in Journal-Files.
Doch insbesondere wenn man dann mal "eben" schauen will, wer was wo wie grade unter welchem Namen im Netzwerk ansprechbar ist bzw. man ein Zonenfile überarbeitet, nerven die deltas, denn in den Zonen-Files sieht man ja deswegen grade nicht, was aktuell der "echte" Stand der Dinge ist.... :-)

Okay - schreiben wir doch mal ein Mini-Script, was die Journal-Files in die Zonenfiles auch hinein schreibt.

Update: 2019-03-28 ... da war dann doch noch ein kleiner Fehler - jetzt passt's besser :-)

[zonerefresh.bash]
#!/bin/bash
#
# zonerefresh.bash

# Little Script to refresh Zone-Journals
#

# 2019-03-16 Oliver Lenz    initial
#

# Examples of Zone-Config in /etc/named.conf
#
#zone vlan109.fritz.local. {
#  type master;
#  file "local.fritz.vlan109.zone";
#  allow-update { key DHCP_UPDATER; };
#};
#
#zone 109.168.192.in-addr.arpa. {
#  type master;
#  file "192.168.109.rev";
#  allow-update { key DHCP_UPDATER; };
#};
#

zoneconfig="/etc/named.conf"

PATH="/usr/sbin/:/bin:"

while read -r line1; do
    zonefile=${line1%.jnl}
    search="file \"${zonefile##*/}\";"
    echo "Zonerefresh for ${zonefile} ."
    while read -r line2; do
        line2=$(echo ${line2} )
        [ "${line2:0:5}" == "zone " ] && zone="${line2:5}" && zone="${zone% \{}"
        if [ "${search}" == "${line2}" ]; then
            rndc freeze ${zone}
            rndc thaw ${zone}
            break;
        fi
    done< <( cat "${zoneconfig}" )
done< <( find /var/named -maxdepth 1 -name *.jnl -print )

Keine Kommentare:

Aktuelles