From b3ceb9be9dda9bfea77f5766c01295ef77b4b82f Mon Sep 17 00:00:00 2001 From: Aaron Johnon Date: Wed, 21 Jul 2021 02:55:36 -0500 Subject: [PATCH] Added awk-fu to check for DNS record of any complete URL; switched to a single message format --- http_check => http_check_telegram | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) rename http_check => http_check_telegram (51%) diff --git a/http_check b/http_check_telegram similarity index 51% rename from http_check rename to http_check_telegram index 0693852..e046f01 100755 --- a/http_check +++ b/http_check_telegram @@ -14,26 +14,42 @@ send_message() { } get_http_code() { - curl -sILk --max-time $TIME $1 | grep HTTP | tail -n 1 | grep -Eo '[0-9]{3}' || printf '%s\n' 000 + if host $(awk '{gsub("https?://|/.*","")}1' <<< $1) &>/dev/null; then + curl -sILk --max-time $TIME $1 | grep HTTP | tail -n 1 | grep -Eo '[0-9]{3}' || printf '%s\n' 999 + else + printf '%s\n' 000 + fi } +# Prepare message header +MSG='HTTP/S Problems Found:' +FAILURE=false + # Check HTTP codes for site in $(< $CHKLIST); do respcode=$(get_http_code $site) case $respcode in 000) printf '%s\n' "[$(date '+%Y%m%d %H:%M:%S')]: PROBLEM -- $site: DNS record not found" >&2 - send_message "HTTP/S Alert:%0A $site DNS record not found." && printf '%s\n' "Message sent via Telegram bot" >&2 + MSG="${MSG}%0A%0A %2B ${site}%0A DNS record not found" + FAILURE=true ;; 200) printf '%s\n' "[$(date '+%Y%m%d %H:%M:%S')]: OK -- $site returns $respcode" ;; + 999) + printf '%s\n' "[$(date '+%Y%m%d %H:%M:%S')]: PROBLEM -- $site caused general cURL failure" >&2 + ;; *) printf '%s\n' "[$(date '+%Y%m%d %H:%M:%S')]: PROBLEM -- $site returns $respcode" >&2 - send_message "HTTP/S Alert:%0A $site responding with $respcode." && printf '%s\n' "Message sent via Telegram bot" >&2 + MSG="${MSG}%0A%0A %2B ${site}%0A responding ${respcode}" + FAILURE=true ;; esac -done || exit 1 +done || exit 2 + +# Send compiled message if any problems were found +send_message "$MSG" && printf '%s\n' "Problems found. Message sent via Telegram bot" >&2 || printf '%s\n' "Problems found. Message sending has failed" exit 0