Files
nrpe/files/nrpe/check_uptime
T
2026-04-24 21:30:01 +02:00

39 lines
987 B
Bash
Executable File

#!/bin/bash
# Nagios Exit Codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
# Default values (in minutes)
warn=1440
crit=30
# Retrieve arguments
while getopts "w:c:" opt; do
case $opt in
w) warn=$OPTARG ;;
c) crit=$OPTARG ;;
*) echo "Usage: $0 -w <minutes> -c <minutes>"; exit $STATE_UNKNOWN ;;
esac
done
# Extract uptime (in seconds) via /proc
uptime_seconds=$(cat /proc/uptime | awk '{print $1}' | cut -d. -f1)
uptime_min=$((uptime_seconds / 60))
# Performance Data
PERFDATA="|uptime_min=${uptime_min}min;${warn};${crit};0;"
# Decision logic
if [ "$uptime_min" -le "$crit" ]; then
echo "CRITICAL - Recent reboot detected (${uptime_min} min < threshold ${crit} min)$PERFDATA"
exit $STATE_CRITICAL
elif [ "$uptime_min" -le "$warn" ]; then
echo "WARNING - Uptime low (${uptime_min} min < threshold ${warn} min)$PERFDATA"
exit $STATE_WARNING
else
echo "OK - System stable (Uptime: ${uptime_min} min)$PERFDATA"
exit $STATE_OK
fi