homelab-codex-ws/services/stability-agent/healthcheck.sh

26 lines
505 B
Bash
Raw Normal View History

2026-05-15 18:51:45 +02:00
#!/bin/sh
HEARTBEAT_FILE="/opt/homelab/state/stability-agent.heartbeat"
MAX_AGE_SECONDS=300 # 5 minutes
if [ ! -f "$HEARTBEAT_FILE" ]; then
echo "Heartbeat file missing"
exit 1
fi
# Get current time in seconds
NOW=$(date +%s)
# Get file modification time in seconds
# Busybox stat (standard in alpine/slim) uses -c %Y
FILE_TIME=$(stat -c %Y "$HEARTBEAT_FILE")
AGE=$((NOW - FILE_TIME))
if [ "$AGE" -gt "$MAX_AGE_SECONDS" ]; then
echo "Heartbeat is too old: ${AGE}s"
exit 1
fi
exit 0