monitoring-scripts/check_ping_by_hostname

39 lines
715 B
Bash
Executable File

#!/bin/bash
#
# check_ping_by_hostname
#
# Attempts to resolve the name for and ping ourselves based on the device's
# hostname.
#
name="$HOSTNAME"
# Ensure $name is available
if [ -z "$name" ]; then
echo "CRITICAL: No hostname(?!)"
exit 2
fi
# Ensure we have the tools we need
for cmd in dig ping; do
if ! command -v "$cmd" > /dev/null 2>&1; then
echo "UNKNOWN: Missing command for check: $cmd"
exit 3
fi
done
# Ensure we can dig ourselves
if [ -z "$(dig +short "$name")" ]; then
echo "CRITICAL: Could not resolve hostname or found empty record: $name"
exit 2
fi
# Ping ourselves
if ! ping "$name" -c 1 > /dev/null 2>&1; then
echo "CRITICAL: Could not ping self"
exit 2
else
echo "OK"
exit 0
fi