Всем привет!!!
Если кто работал с asterisk тот знает как неприятно, когда транк или несколько транков не работает, а что бы их починить надо просто их рестартануть. Вот этот скрипт делает это за вас.
Понятно, что надо разбираться почему так происходит и почему транки перестают работать, но не всегда это зависит от вас и не всегда это происходит в рабочее время,а просыпаться ночью по звонку и с сонными глазами втыкать в консоль читая логи та еще затея.
Поэтому я и написал скрипт для проверки транков Astrisk, что бы ночью спать спокойно, а днем разбираться в проблеме.
Asterisk cкрипт проверки транков
#!/bin/bash
#Скрипт проверки транков
#* * * * * [ -x /var/lib/asterisk/bin/trunk_check.sh ] && /var/lib/asterisk/bin/trunk_check.sh >> /var/log/asterisk/trunk_check.log 2>&1
#Скрипт написал BAF mail: baf@bafista.ru
# Задаем переменные
# Смотрим статусы транков
ALLTRUNKSMINIMUM="`/usr/sbin/asterisk -rx "sip show registry"`"
# Смотрим сколько всего транков в системе
ALLTRUNKS=`echo "$ALLTRUNKSMINIMUM" |grep "SIP registrations" |awk '{print $1}'`
# Зарегистрированные транки (все транки со статусом Registered)
REGTRUNKS=`/usr/sbin/asterisk -rx "sip show registry" |grep Registered |wc -l`
# Задаем условие
if [ "$REGTRUNKS" -lt "$ALLTRUNKS" ];
# Если есть хоть один проблемный транк (В одном или более транке встретился статус отличный от Registered) то
then
# Ждем 5 секунд
sleep 5
echo “`date "+%d/%m/%Y %T"` --- ONE OR MORE TRUNKS STATUS FAILD”
VAR2=`/usr/sbin/asterisk -rx "sip show registry"`
# && /usr/sbin/asterisk -rx "sip show peers"`
#echo "$VAR2"
# Делаем sip reload
#echo `/usr/sbin/asterisk -rx "sip reload"`
# Ждем 5 секунд
sleep 5
# Смотрим статусы транков после проверки
VAR=`/usr/sbin/asterisk -rx "sip show registry" && /usr/sbin/asterisk -rx "sip show peers"`
echo "$VAR"
# Уведомляем на почту о том какие статусы стали после проверки
#echo "$VAR" | mail -s "Мониторинг транков" baf@it-north.net
# Если условие ложно (т.е. с транками все хорошо)
else
# Просто выводим что со всеми статусами все хорошо и ничего не делаем больше
echo “`date "+%d/%m/%Y %T"` --- ALL STATUS OK”
fi
exit 0