#!/bin/bash

VIEW=$1

RNDC="/usr/sbin/rndc"

command -v rndc dumpdb -zones $VIEW >/dev/null 2>&1 || { echo >&2 "The rndc command is required but not installed.  Aborting."; exit 3; }
$RNDC dumpdb -zones $VIEW
until grep -q "Dump complete" "/var/named/data/cache_dump.db"; do   sleep 1s; done

PRIMARY_NAMESERVER="ns1.tech-island.com"
NAMESERVERS=( ns1.tech-island.com ns2.afraid.org google-public-dns-a.google.com )
ZONEFILE="/var/named/data/cache_dump.db"

if [ -r $ZONEFILE ]
then
  for ZONE in `grep -iv '\.arpa' $ZONEFILE | grep -oP "'.*\/IN" | tr -d "'" |tr -d "/IN"`;
  do
    for NAMESERVER in ${NAMESERVERS[@]}
    do
      NS_RECORD=$(dig @$NAMESERVER +short $ZONE ns)
      if [[ $NS_RECORD != *$PRIMARY_NAMESERVER* ]]
      then
        RECORDS_FOUND="$RECORDS_FOUND $ZONE\n    $NS_RECORD (our NS not listed on: $NAMESERVER)\n\n"
      fi
    done
  done
else
  echo "Zonefile $ZONEFILE is not readable!"
  exit 3
fi

if [[ $RECORDS_FOUND != "" ]]
then
  echo -e "Orphaned zones found\n\n$RECORDS_FOUND"
  exit 1
else
  echo "No orphaned zones found."
  exit 0
fi
