From 41e897f4945aaf8fbcdf0b12ac2f08c5e6ae0458 Mon Sep 17 00:00:00 2001 From: doc Date: Mon, 30 Jun 2025 20:11:52 +0000 Subject: commit of legacy code --- pull_health_everywhere_ntp.sh | 101 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100755 pull_health_everywhere_ntp.sh (limited to 'pull_health_everywhere_ntp.sh') diff --git a/pull_health_everywhere_ntp.sh b/pull_health_everywhere_ntp.sh new file mode 100755 index 0000000..3ae6ebd --- /dev/null +++ b/pull_health_everywhere_ntp.sh @@ -0,0 +1,101 @@ +#!/bin/bash + +# === CONFIG === +REMOTE_USER="doc" +BOT_TOKEN="8178867489:AAH0VjN7VnZSCIWasSz_y97iBLLjPJA751k" +CHAT_ID="1559582356" +TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') +LOGFILE="$HOME/krang-logs/health-$(date '+%Y%m%d-%H%M').log" + +# Thresholds +SWAP_LIMIT_MB=512 +LOAD_LIMIT=4.0 + +mkdir -p "$HOME/krang-logs" + +SERVERS=( + thevault.sshjunkie.com + zcluster.technodrome1.sshjunkie.com + zcluster.technodrome2.sshjunkie.com + shredder.sshjunkie.com + chatwithus.live +) + +SUMMARY="📡 Krang System Health Report - $TIMESTAMP + +" + +for HOST in "${SERVERS[@]}"; do + echo "🔍 Collecting from $HOST..." + + DATA=$(ssh "$REMOTE_USER@$HOST" bash -s << 'EOF' +HOST=$(hostname) +MEM=$(free -h | awk '/Mem:/ {print $4 " free"}') +SWAP_RAW=$(free -m | awk '/Swap:/ {print $3}') +SWAP="$SWAP_RAW Mi used" +DISK=$(df -h / | awk 'NR==2 {print $4 " free"}') +LOAD=$(uptime | awk -F'load average:' '{print $2}' | cut -d, -f1 | xargs) +APACHE=$(systemctl is-active apache2 2>/dev/null || systemctl is-active httpd 2>/dev/null) +[ "$APACHE" = "active" ] && APACHE_STATUS="✅ Apache running" || APACHE_STATUS="❌ Apache not running" + +echo "$HOST|$MEM|$SWAP_RAW|$SWAP|$DISK|$LOAD|$APACHE_STATUS" +EOF +) + + IFS='|' read -r H MEM SWAP_MB SWAP_HUMAN DISK LOAD1 APACHE_STATUS <<< "$DATA" + + ALERTS="" + if (( SWAP_MB > SWAP_LIMIT_MB )); then + ALERTS+="⚠️ HIGH SWAP ($SWAP_HUMAN) +" + fi + + LOAD_INT=$(awk "BEGIN {print ($LOAD1 > $LOAD_LIMIT) ? 1 : 0}") + if [ "$LOAD_INT" -eq 1 ]; then + ALERTS+="⚠️ HIGH LOAD ($LOAD1) +" + fi + + ALERTS_MSG="" + [ -n "$ALERTS" ] && ALERTS_MSG="🚨 ALERTS: +$ALERTS" + + SUMMARY+="🖥️ $H +• Mem: $MEM +• Swap: $SWAP_HUMAN +• Disk: $DISK +• Load: $LOAD1 +• $APACHE_STATUS +$ALERTS_MSG + +" +done + +# === KRANG CLOCK ACCURACY CHECK === +NTP_RESULT=$(ntpdate -q time.google.com 2>&1) +OFFSET=$(echo "$NTP_RESULT" | awk '/offset/ {print $10}') +OFFSET_MS=$(awk "BEGIN {printf "%.0f", $OFFSET * 1000}") + +if [[ -n "$OFFSET_MS" ]]; then + if (( OFFSET_MS > 500 || OFFSET_MS < -500 )); then + # Auto-correct the system clock + CORRECTION=$(ntpdate -u time.google.com 2>&1) + SUMMARY+="🛠️ Auto-corrected Krang clock via ntpdate: $CORRECTION +" + + SUMMARY+="🕰️ Krang Clock Offset: ${OFFSET_MS}ms — ⚠️ OUT OF SYNC +" + else + SUMMARY+="🕰️ Krang Clock Offset: ${OFFSET_MS}ms — ✅ SYNCHRONIZED +" + fi +else + SUMMARY+="🕰️ Krang Clock Check: ❌ FAILED to retrieve offset. +" +fi + +# Log to file +echo -e "$SUMMARY" > "$LOGFILE" + +# Send to Telegram +curl -s -X POST https://api.telegram.org/bot$BOT_TOKEN/sendMessage -d chat_id="$CHAT_ID" -d text="$SUMMARY" -- cgit v1.2.3