39 lines
715 B
Plaintext
39 lines
715 B
Plaintext
|
#!/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
|