how to check if a slave zone is expired

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

On 5/4/11 10:22 AM, hugo hugoo wrote:
> 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

EMAIL=email at

TOMORROW=$(/bin/date --date="tomorrow" +%s)

for zone in $(/bin/ls -1 | /bin/grep -v \.jnl$);
   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");
done | /bin/mail -s "Zones which expire in the next 24 hours" ${EMAIL}


More information about the bind-users mailing list