icinga2-checks/check_uptime.sh

27 lines
703 B
Bash
Executable File

#!/usr/bin/env 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 -1
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)
# Convert the uptime seconds to days
UPTIME_DAYS=$(echo "scale=2; $UPTIME_SECONDS / 86400" | bc)
# Print the result and performance data
echo "OK - Uptime: $UPTIME_DAYS days | uptime_hours=$UPTIME_HOURS"
exit 0