27 lines
651 B
Bash
Executable File
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
|