Skip to content

Instantly share code, notes, and snippets.

@Jcpetrucci
Last active March 8, 2024 17:34
Show Gist options
  • Save Jcpetrucci/c1364d07af0060e4687bbc46c63b6b0a to your computer and use it in GitHub Desktop.
Save Jcpetrucci/c1364d07af0060e4687bbc46c63b6b0a to your computer and use it in GitHub Desktop.
monitor dns response, alert when it changes
#!/bin/bash
declare -A currentAnswer=()
declare -A lastAnswer=()
while getopts ":s" opt; do
case $opt in
s) silent=true ;;
esac
done
shift "$((OPTIND-1))"
query=${1:-"autodiscover.wip.company.com."}
while :; do
#hr;
date '+%F %T.%N %Z';
for resolver in geodns1-int.company.com. geodns2-int.company.com.; do
varResolver=${resolver%%-*}
currentAnswer[$varResolver]="$(dig @${resolver} ${query} +short | tail -1)"
printf 'QUERY: %s .. RESOLVER: %s .. ANSWER: %s\n' "${query}" "${resolver}" "${currentAnswer[$varResolver]}"
if [[ "${currentAnswer[$varResolver]}" != "${lastAnswer[$varResolver]}" ]]; then
[[ "$silent" == "true" ]] || printf '^G'
printf '%s\n' 'This answer differs from the last!'
fi
lastAnswer[$varResolver]="${currentAnswer[$varResolver]}"
done
sleep 10;
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment