👋🏻 Привет! С вами снова Merion Academy - платформа доступного IT образования. Без лирики, приступим сразу к настройке. Подключитесь к консоли сервера - создаем файл:
[root@asterisk ~]# touch chektrank.sh
Далее открываем этот файл для редактирования через nano редактор:
[root@asterisk ~]# nano chektrank.sh
Вписываем скрипт в этот файл:
#!/bin/bash
# Задаем переменные
ALLTRUNKSMINIMUM=\"`/usr/sbin/asterisk -rx \"sip show registry\"`\" # Смотрим статусы транков
ALLTRUNKS=`echo \"$ALLTRUNKSMINIMUM\" |grep \"SIP registrations\" |awk \'{print $1}\'` # Смотрим сколько всего транков в системе
REGTRUNKS=`/usr/sbin/asterisk -rx \"sip show registry\" |grep Registered |wc -l` # Зарегистрированные транки (все транки со статусом Registered)
# Задаем условие
if [ \"$REGTRUNKS\" -lt \"$ALLTRUNKS\" ]; then # Если есть хоть один проблемный транк (В одном или более транке встретился статус отличный от Registered) то
sleep 5 # Ждем 5 секунд
echo `/usr/sbin/asterisk -rx \"sip reload\"` # Делаем sip reload
sleep 5 # Ждем 5 секунд
VAR=`/usr/sbin/asterisk -rx \"sip show registry\"` # Смотрим статусы транков после проверки
# Уведомляем на почту о том какие статусы стали после проверки
echo \"$VAR\" | mail -s \"Мониторинг транков\" your@mail.ru
# Если условие ложно (т.е. с транками все хорошо)
else
echo “ALL STATUS OK” # Просто выводим что со всеми статусами все хорошо и ничего не делаем больше
fi
Теперь зашедулим скрипт через планировщик заданий cron:
[root@asterisk ~]# crontab -e
Жмем «О» что бы написать или вставить текст. Пишем в открывшемся окне:
0 /120 * * * /bin/bash /root/chektrank.sh
Жмем esc и пишем :wq. Не забываем включить verbose в логах :)
--
До встречи на нашей образовательной платформе.
Merion Academy - платформа доступного IT образования.