|
|
@@ -0,0 +1,41 @@
|
|
|
+#!/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 ]; 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 ]; 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
|