Asterisk cкрипт проверки транков

Всем привет!!!

Если кто работал с 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

Добавить комментарий

13 − 1 =