Initial backup: 18 monitoring scripts + timers + docs

- 18 comprehensive monitoring checks
- 5 systemd timers (5min, 15min, hourly, daily, weekly)
- Complete documentation
- NTFY secure notification system
- Fixed debianvm disk space (91% to 57%)
- Fixed CloudReve integration
- Date: 2026-01-07
This commit is contained in:
PVE Monitoring System
2026-01-07 16:30:34 +08:00
commit 3a14fd2736
34 changed files with 1067 additions and 0 deletions

44
scripts/check-network.sh Executable file
View File

@@ -0,0 +1,44 @@
#!/bin/bash
# Monitor public IP and internet speed
set -euo pipefail
SEND_NTFY="/usr/local/bin/send-ntfy.sh"
CACHE_FILE="/var/cache/public_ip_pve"
# Check public IP
CURRENT_IP=$(timeout 10 curl -s https://ifconfig.me 2>/dev/null || echo "FAILED")
if [ "$CURRENT_IP" = "FAILED" ]; then
$SEND_NTFY warning "Internet Check Failed" "🟡 WARNING: Cannot detect public IP - internet connection issue?" "warning,globe_with_meridians"
exit 1
fi
# Check if IP changed
if [ -f "$CACHE_FILE" ]; then
OLD_IP=$(cat "$CACHE_FILE")
if [ "$CURRENT_IP" != "$OLD_IP" ]; then
$SEND_NTFY info "Public IP Changed" " INFO: Homelab public IP changed\nOld: $OLD_IP\nNew: $CURRENT_IP" "globe_with_meridians,info"
fi
fi
echo "$CURRENT_IP" > "$CACHE_FILE"
# Speed test (only if --speedtest flag passed)
if [ "${1:-}" = "--speedtest" ]; then
if command -v speedtest-cli &>/dev/null; then
SPEED_RESULT=$(speedtest-cli --simple 2>/dev/null || echo "FAILED")
if [ "$SPEED_RESULT" != "FAILED" ]; then
UPLOAD=$(echo "$SPEED_RESULT" | grep "Upload:" | awk '{print $2}')
UPLOAD_INT=${UPLOAD%.*}
if [ "$UPLOAD_INT" -lt 10 ]; then
$SEND_NTFY warning "Slow Internet Speed" "🟡 WARNING: Upload speed only $UPLOAD Mbit/s (< 10 Mbit/s)" "snail,warning,globe_with_meridians"
else
$SEND_NTFY info "Speed Test Result" " INFO: Internet speed test\n$SPEED_RESULT" "globe_with_meridians,zap"
fi
fi
fi
fi
logger -t network-monitor "Public IP: $CURRENT_IP"