how to check if a slave zone is expired

John Bond jbond at ripe.net
Thu May 5 10:30:34 UTC 2011


On 5/4/11 10:22 AM, hugo hugoo wrote:
>  
> So..no way to check that a zone is expired?
Hello Hugo,

I recently wrote a small script which mails me about any zones that is due to expire within the next 24 hours.  This works by using the last change time of the file on disk and the SOA expiry time.  It is a bit hackish but produces a report telling you when a zone will expire, including zones that will expire in the past.  If anyone has any improvements on this i would welcome comments

======================================================================
#!/bin/sh
ZONEDIR=/var/named/zones/
EMAIL=email at example.com

TOMORROW=$(/bin/date --date="tomorrow" +%s)
cd ${ZONEDIR}

for zone in $(/bin/ls -1 | /bin/grep -v \.jnl$);
do
   zone_lastupdated=$(/usr/bin/stat -c %Z ${zone});
   expiry=$(/usr/bin/dig +short SOA ${zone} @localhost 2>/dev/null| /usr/bin/awk '{print $6}') ;
   zone_expires=$((zone_lastupdated + expiry));
   if [ ${zone_expires} -le ${TOMORROW} ]; then
      echo ${zone} Expires on $(/bin/date --date "$[$(/bin/date +%s)-${zone_expires}] seconds ago");
   fi
done | /bin/mail -s "Zones which expire in the next 24 hours" ${EMAIL}
======================================================================


Regards
John




More information about the bind-users mailing list