#!/bin/bash # genesis_routewatch.sh - Bash-based route probe script TARGET_HOST="baboon.sshjunkie.com" MAX_HOPS=30 ALERT_THRESHOLD=5 TRACEROUTE_OUTPUT=$(traceroute -n -m $MAX_HOPS "$TARGET_HOST" 2>/dev/null) # Fallback if traceroute fails if [ -z "$TRACEROUTE_OUTPUT" ]; then echo "GenesisRouteWatch: $(hostname)" echo "Target: $TARGET_HOST" echo "Status: CRITICAL - Traceroute failed" exit 1 fi # Parse traceroute output MISSING_HOPS=0 TOTAL_HOPS=0 REPORT="GenesisRouteWatch: $(hostname)\nTarget: $TARGET_HOST\n" while IFS= read -r line; do if [[ $line =~ ^[0-9]+ ]]; then ((TOTAL_HOPS++)) if echo "$line" | grep -q "\* \* \*"; then REPORT+="- MISSING HOP: 0ms\n" ((MISSING_HOPS++)) fi fi [[ $TOTAL_HOPS -ge $MAX_HOPS ]] && break done <<< "$TRACEROUTE_OUTPUT" REPORT+="\nPath Length: $TOTAL_HOPS" if [ $MISSING_HOPS -gt 0 ]; then REPORT+=" | Status: CRITICAL\n" for ((i=0; i<$MISSING_HOPS; i++)); do REPORT+="\xF0\x9F\x9A\xA8 Missing hop in path\n" done else REPORT+=" | Status: OK" fi # Print the final result echo -e "$REPORT"