icinga2-checks/check_uptime.sh

27 lines
651 B
Bash
Executable File

#!/bin/bash
# Get the uptime start time
UPTIME_OUTPUT=$(uptime -s)
UPTIME_EXIT_CODE=$?
# Check if the uptime command was successful
if [ $UPTIME_EXIT_CODE -ne 0 ]; then
echo "UNKNOWN - Unable to get uptime"
exit 3
fi
# Calculate the uptime in seconds
UPTIME_START=$(date -u -d "$UPTIME_OUTPUT" +%s)
CURRENT_TIME=$(date -u +%s)
UPTIME_SECONDS=$((CURRENT_TIME - UPTIME_START))
# Convert the uptime seconds to hours
UPTIME_HOURS=$(echo "scale=2; $UPTIME_SECONDS / 3600" | bc)
# Get the human-readable uptime
UPTIME_HUMAN=$(uptime -p)
# Print the result and performance data
echo "OK - Uptime: $UPTIME_HUMAN | uptime_hours=$UPTIME_HOURS"
exit 0