Files
soteria/scripts/check_status.sh
John Lancaster c2253fb62a fixed some paths
2025-12-28 18:16:46 -06:00

55 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m' # No Color
print_status() {
local item="$1"
local status="$2"
local error_msg="$3"
if [ "$status" -eq 0 ]; then
echo -e "${item}: ${GREEN}OK${NC}"
else
echo -e "${item}: ${RED}FAIL${NC}"
if [ -n "$error_msg" ]; then
echo -e " ${RED}Error:${NC} $error_msg"
fi
EXIT_CODE=1
fi
}
EXIT_CODE=0
CERTS_DIR="$(readlink -f ~/.step/certs)"
SERVER_CERT="$CERTS_DIR/restic.crt"
SERVER_KEY="$CERTS_DIR/restic.key"
TIMER_NAME="cert-renewer.timer"
# 1. Check Certificates Existence
if [ -f "$SERVER_CERT" ] && [ -f "$SERVER_KEY" ]; then
print_status "Certificate Files" 0
else
print_status "Certificate Files" 1 "Missing $SERVER_CERT or $SERVER_KEY"
fi
# 2. Check Certificate Validity (Is it valid NOW?)
if [ -f "$SERVER_CERT" ] && command -v openssl &> /dev/null; then
# Check if valid for at least 60 seconds
if openssl x509 -checkend 60 -noout -in "$SERVER_CERT" &> /dev/null; then
print_status "Certificate Validity" 0
else
print_status "Certificate Validity" 1 "Certificate at $SERVER_CERT is expired or expiring within 60s"
fi
fi
# 3. Check Timer Status
if systemctl is-active "$TIMER_NAME" &> /dev/null; then
print_status "Renewal Timer" 0
else
print_status "Renewal Timer" 1 "Systemd timer '$TIMER_NAME' is not active"
fi
exit $EXIT_CODE