Для работы скрипта понадобится Telegram бот. Если у тебя его еще нет, то поговори с папой- BotFather.
Скрипт можно запускать через Cron, сделав небольшие изменения в коде(убрать цикл как минимум), но я демонизирую его с помощью supervisor.
#!/bin/bash
CHATID="1122333" # ID контака или группы телеграм для отправки оповещений
KEY="AAAAAASSSSSSDDDDDDFFFFFGGGGGHHHHHJJJJJKKKKLLL" # Ключ телеграм-бота
TIME="20"
URL="https://api.telegram.org/bot$KEY/sendMessage"
TEXTDW="Упал SIP транк"
TEXTUP="Транк снова в работе"
FAILS=0
ALERTSTAT=0
while true; do
    reg_tranks=`/usr/sbin/asterisk -rx 'sip show registry'| grep Registered |wc -l`
    if [ "$reg_tranks" == "0" ];
        then
            FAILS=$((FAILS+1))
            sleep 5
            echo `/usr/sbin/asterisk -rx "sip reload"` #Пробуем поднять транк
    elif [ "$reg_tranks" == "1" ] && [ "$ALERTSTAT" == "1" ] && [ "$FAILS" == "0" ];
        then
            curl -s --max-time $TIME -d "chat_id=$CHATID&disable_web_page_preview=1&text=$TEXTUP" $URL >/dev/null
            ALERTSTAT=0
            FAILS=0
    elif [ "$reg_tranks" == "1" ];
        then
            FAILS=0
    fi
    
    if [ "$FAILS" == "2" ] && [ "$ALERTSTAT" == "0" ];
        then
            curl -s --max-time $TIME -d "chat_id=$CHATID&disable_web_page_preview=1&text=$TEXTDW" $URL >/dev/null
            ALERTSTAT=1
    fi
    sleep 60
done
 
Комментариев нет:
Отправить комментарий