42 lines
1.2 KiB
Bash
42 lines
1.2 KiB
Bash
#!/bin/sh
|
|
# $1 = event type (ONLINE, ONBATT, LOWBATT, FSD, etc.)
|
|
|
|
# Configuration
|
|
MIKROTIK_TARGETS="192.168.7.1 192.168.7.30"
|
|
TELEGRAM_BOT_TOKEN="6770207225:AAG3yNPepyhhGXqNh8BYjLYUMctc1DSfrH4"
|
|
TELEGRAM_CHAT_ID="6796478523"
|
|
|
|
# Map NUT events to Short Codes
|
|
case "$1" in
|
|
"ONLINE") CODE="OL" ;;
|
|
"ONBATT") CODE="OB" ;;
|
|
"LOWBATT") CODE="LB" ;;
|
|
"COMMOK") CODE="CM_OK" ;;
|
|
"COMMBAD") CODE="CM_ERR" ;;
|
|
"REPLBATT") CODE="RB" ;;
|
|
"FSD") CODE="FSD" ;;
|
|
"SHUTDOWN") CODE="SD" ;;
|
|
"NOCOMM") CODE="NC" ;;
|
|
*) CODE="$1" ;; # Fallback
|
|
esac
|
|
|
|
# Message for Telegram
|
|
DATE=$(date "+%Y-%m-%d %H:%M:%S")
|
|
MESSAGE="UPS Notification: $CODE at $DATE"
|
|
|
|
# 1. Send to Telegram using CURL (Secure)
|
|
# curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" -d chat_id="$TELEGRAM_CHAT_ID" -d text="$MESSAGE" > /dev/null 2>&1 &
|
|
|
|
# 2. Send to MikroTik Routers
|
|
for IP in $MIKROTIK_TARGETS; do
|
|
# Log event
|
|
ssh -i /root/.ssh/id_rsa -y upsuser@$IP "/log warning \"UPS: $CODE\"" &
|
|
|
|
# Shutdown on Critical
|
|
if [ "$CODE" = "LB" ] || [ "$CODE" = "FSD" ]; then
|
|
ssh -i /root/.ssh/id_rsa -y upsuser@$IP "/system shutdown" &
|
|
fi
|
|
done
|
|
|
|
wait
|