💾 Archived View for gmn.clttr.info › sources › geminispace.git › tree › infra › gemini-health-check.… captured on 2022-01-08 at 21:33:10.
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
#!/bin/sh set -e if [ -z "$1" ] || [ -z "$2" ]; then echo "Usage: $0 EMAIL HOSTNAME [PORT] [URL]" exit 1 fi EMAIL="$1" HOSTNAME="$2" PORT="$3" URL="$4" [ -z "$PORT" ] && PORT=1965 [ -z "$URL" ] && URL="gemini://$HOSTNAME:$PORT/" [ -z "$FROM_EMAIL" ] && FROM_EMAIL="noreply@$(hostname)" PREVIOUS_STATE="/var/lib/gemini-health-check/$HOSTNAME" CURRENT_STATE="/var/lib/gemini-health-check/$HOSTNAME.$" echo "$URL\r" \ | openssl s_client -servername "$HOSTNAME" -connect "$HOSTNAME:$PORT" -quiet 2>&1 \ | sed -E -e 's,^[0-9]{10\,}:error:,,' \ > "$CURRENT_STATE" if cmp "$PREVIOUS_STATE" "$CURRENT_STATE" > /dev/null 2>&1; then : else ( echo "Current response from $URL:" echo sed 's,^,> ,' < "$CURRENT_STATE" ) | mail -r "$FROM_EMAIL" -s "$HOSTNAME status changed" "$EMAIL" fi mv "$CURRENT_STATE" "$PREVIOUS_STATE"