6ea64bc19e
- Add backend API for Transmission RPC integration - Create frontend page with torrent and tracker status - Add health monitoring script - Display daemon status, speeds, and tracker errors - Support reannounce, start/stop actions
53 lines
1.8 KiB
Bash
Executable File
53 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Transmission Health Check Script
|
|
# Monitors Transmission daemon and tracker connectivity
|
|
|
|
TELEGRAM_BOT_TOKEN="${TELEGRAM_BOT_TOKEN}"
|
|
TELEGRAM_CHAT_ID="${TELEGRAM_CHAT_ID}"
|
|
|
|
send_alert() {
|
|
local message="$1"
|
|
if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then
|
|
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
|
|
-d "chat_id=${TELEGRAM_CHAT_ID}" \
|
|
-d "text=🚨 Transmission Alert: ${message}" \
|
|
-d "parse_mode=HTML" > /dev/null
|
|
fi
|
|
}
|
|
|
|
# Check if Transmission daemon is running
|
|
if ! ps aux | grep transmission-daemon | grep sc-transmission | grep -v grep > /dev/null; then
|
|
send_alert "Transmission daemon is not running!"
|
|
echo "ERROR: Transmission daemon is not running"
|
|
exit 1
|
|
fi
|
|
|
|
# Check recent logs for tracker errors
|
|
LOG_FILE="/volume1/@appdata/transmission/transmission.log"
|
|
if [ -f "$LOG_FILE" ]; then
|
|
# Count recent tracker errors (last 100 lines)
|
|
ERROR_COUNT=$(tail -100 "$LOG_FILE" | grep -c "Announce error: Could not connect to tracker")
|
|
|
|
if [ "$ERROR_COUNT" -gt 50 ]; then
|
|
send_alert "High number of tracker errors detected: ${ERROR_COUNT} in recent logs"
|
|
echo "WARNING: ${ERROR_COUNT} tracker errors found"
|
|
fi
|
|
|
|
# Check if log is stale (no updates in last hour)
|
|
LOG_AGE=$(find "$LOG_FILE" -mmin +60 2>/dev/null)
|
|
if [ -n "$LOG_AGE" ]; then
|
|
send_alert "Transmission log hasn't been updated in over an hour - daemon may be stuck"
|
|
echo "WARNING: Log file is stale"
|
|
fi
|
|
fi
|
|
|
|
# Check if RPC port is listening
|
|
if ! netstat -tln 2>/dev/null | grep -q ":9091 " && ! ss -tln 2>/dev/null | grep -q ":9091 "; then
|
|
send_alert "Transmission RPC port 9091 is not listening"
|
|
echo "ERROR: RPC port not listening"
|
|
exit 1
|
|
fi
|
|
|
|
echo "OK: Transmission health check passed"
|
|
exit 0
|