status check script
This commit is contained in:
57
scripts/check_status.sh
Executable file
57
scripts/check_status.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
print_status() {
|
||||
local item="$1"
|
||||
local status="$2"
|
||||
if [ "$status" -eq 0 ]; then
|
||||
echo -e "${item}: ${GREEN}OK${NC}"
|
||||
else
|
||||
echo -e "${item}: ${RED}FAIL${NC}"
|
||||
EXIT_CODE=1
|
||||
fi
|
||||
}
|
||||
|
||||
EXIT_CODE=0
|
||||
|
||||
# Determine Project Directory
|
||||
if [ -d "certs" ] && [ -f "Caddyfile" ]; then
|
||||
PROJECT_DIR="$PWD"
|
||||
else
|
||||
PROJECT_DIR="/home/john/soteria"
|
||||
fi
|
||||
|
||||
CERTS_DIR="$PROJECT_DIR/certs"
|
||||
SERVER_CERT="$CERTS_DIR/soteria.crt"
|
||||
SERVER_KEY="$CERTS_DIR/soteria.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
|
||||
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
|
||||
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
|
||||
fi
|
||||
|
||||
exit $EXIT_CODE
|
||||
Reference in New Issue
Block a user