From 2f756409d90b166ea81a92673595a4aa0924ef82 Mon Sep 17 00:00:00 2001 From: Daniel Wenzel Date: Thu, 20 Jan 2022 10:32:25 +0100 Subject: [PATCH] =?UTF-8?q?'check=5Ftwodns.sh'=20hinzuf=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- check_twodns.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 check_twodns.sh diff --git a/check_twodns.sh b/check_twodns.sh new file mode 100644 index 0000000..90f8f29 --- /dev/null +++ b/check_twodns.sh @@ -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