#!/bin/bash # Return Codes: # 0 - Ok! - Up # 1 - Warning - Flaky # 2 - Critical - Down # 3 - Unknown - Ummm... What happened?! STATE=3 print_usage() { echo "Usage: check_twodns.sh [Master DNS] [Slave DNS] [Zone]" } #Parameter prüfen if [ $# -ne 3 ]; then print_usage exit $STATE fi SerialMaster=$(/usr/bin/dig @${1} ${3} +short SOA | awk '{print $3}') if [ $? -ne 0 ] || [ -z "$SerialMaster" ]; then echo "Error reading Serial from Master for Domain \"${3}\"" exit 3 fi SerialSlave=$(/usr/bin/dig @${2} ${3} +short SOA | awk '{print $3}') if [ $? -ne 0 ] || [ -z "$SerialSlave" ]; then echo "Error reading Serial from Slave for Domain \"${3}\"" exit 3 fi if [ "$SerialMaster" -eq "$SerialSlave" ]; then Status="Serial for \"${3}\" is identical on both DNS-Servers: ${SerialMaster}" STATE=0 else echo "Serial for \"${3}\" is different. Master: ${SerialMaster}, Slave: ${SerialSlave}" STATE=2 fi echo $Status exit $STATE