Man вики
Нет описания правки
Нет описания правки
Метки: Визуальный редактор apiedit
 
(не показаны 3 промежуточные версии 3 участников)
Строка 1: Строка 1:
==Задача: Ежеминутный мониторинг состояния транков.==
+
==Задача: Ежеминутный мониторинг состояния службы и транков.==
   
 
Для этого, создадим скрипт:
 
Для этого, создадим скрипт:
Строка 9: Строка 9:
 
log="/var/log/aster_check.log" #Путь к log файлу.
 
log="/var/log/aster_check.log" #Путь к log файлу.
 
asterisk="/usr/sbin/asterisk" #Путь к файлу обработчика Asterisk.
 
asterisk="/usr/sbin/asterisk" #Путь к файлу обработчика Asterisk.
 
service="/etc/init.d/asterisk" #Путь к службе Asterisk
  +
  +
  +
# Проверяем, запущена ли служба Asterisk, если не запущена, запускаем.
 
ServWork=`$asterisk -rx 'sip show registry' | grep -i "Unable to connect" | wc -l`
  +
 
if [ $ServWork -eq "1" ]; then
  +
echo "Запуск службы Asterisk" >>$log
  +
$service start
  +
  +
fi
  +
 
 
 
#Проверяем количество зарегистрированных транков.
 
#Проверяем количество зарегистрированных транков.
Строка 23: Строка 35:
   
 
После чего, необходимо сделать его исполняемым.
 
После чего, необходимо сделать его исполняемым.
 
chmod +x /etc/aster_check
 
Chmod +x /etc/aster_check
 
 
Добавим скрипт в crontab для ежеминутного запуска скрипта.
 
Добавим скрипт в crontab для ежеминутного запуска скрипта.
Crontab -e
+
crontab -e
 
В конце добавляем:
 
В конце добавляем:
 
* * * * * /etc/aster_check
 
* * * * * /etc/aster_check
Строка 35: Строка 46:
 
#!/bin/bash
 
#!/bin/bash
 
 
MinTrunk=21 #Минимальное количество зарегистрированных транков.
 
log="/var/log/aster_check.log" #Путь к log файлу.
 
asterisk="/usr/sbin/asterisk" #Путь к файлу обработчика Asterisk.
 
sleep="/bin/sleep" #Путь к файлу обработчика sleep.
 
 
 
#Проверяем количество зарегистрированных транков.
+
MinTrunk=21 #Минимальное количество зарегистрированных транков
  +
CurKolTrunk=`$asterisk -rx 'sip show registry' | grep -i "register" | wc -l`
 
 
log="/var/log/aster_check.log" #Путь к log файлу
  +
asterisk="/usr/sbin/asterisk" #Путь к файлу обработчика Asterisk
 
sleep="/bin/sleep" #Путь к файлу обработчика команды sleep
  +
service="/etc/init.d/asterisk" #Путь к службе Asterisk
 
 
#Сверяем количество зарегистрированных транков, если значение меньше минимального, перезапускаем SIP транки.
 
 
for step in 1 2 3 4 5 6
 
for step in 1 2 3 4 5 6
 
do
 
do
  +
if [ $CurKolTrunk -lt $MinTrunk ]; then
 
  +
# Проверяем, запущена ли служба Asterisk, если не запущена, запускаем.
  +
ServWork=`$asterisk -rx 'sip show registry' | grep -i "Unable to connect" | wc -l`
  +
  +
if [ $ServWork -eq "1" ]; then
  +
echo "Запуск службы Asterisk" >>$log
  +
$service start
  +
  +
fi
  +
 
#Проверяем количество зарегистрированных транков, если значение меньше определенного, переподключаем транки.
  +
CurKolTrunk=`$asterisk -rx 'sip show registry' | grep -i "register" | wc -l`
  +
  +
  +
if [ $CurKolTrunk -lt $MinTrunk ]; then
  +
 
echo "Количество зарегистрированных транков: $CurKolTrunk" >> $log
 
echo "Количество зарегистрированных транков: $CurKolTrunk" >> $log
 
echo "`date` Перезапуск SIP транков." >> $log
 
echo "`date` Перезапуск SIP транков." >> $log
 
$asterisk -rx 'sip reload'
 
$asterisk -rx 'sip reload'
  +
 
fi
 
fi
 
$sleep 10
 
$sleep 10

Текущая версия от 02:21, 13 апреля 2016

Задача: Ежеминутный мониторинг состояния службы и транков.[]

Для этого, создадим скрипт:

nano /etc/aster_check

Содержание:

#!/bin/bash

MinTrunk=21 #Минимальное количество зарегистрированных транков.
log="/var/log/aster_check.log"  #Путь к log файлу.
asterisk="/usr/sbin/asterisk" #Путь к файлу обработчика Asterisk.
service="/etc/init.d/asterisk" #Путь к службе Asterisk


# Проверяем, запущена ли служба Asterisk, если не запущена, запускаем.
ServWork=`$asterisk -rx 'sip show registry' | grep -i "Unable to connect" | wc -l`

        if [ $ServWork -eq "1" ]; then 
                echo "Запуск службы Asterisk" >>$log
                $service start

        fi


#Проверяем количество зарегистрированных транков.
CurKolTrunk=`$asterisk -rx 'sip show registry' | grep -i "register" | wc -l`

#Сверяем количество зарегистрированных транков, если значение меньше минимального, перезапускаем SIP транки.
        if [ $CurKolTrunk -lt $MinTrunk ]; then
                        echo "Количество зарегистрированных транков: $CurKolTrunk" >> $log
                        echo "`date` Перезапуск SIP транков."  >> $log
                        $asterisk -rx 'sip reload'
        fi
exit

Закрываем и сохраняем все Ctrl + X.

После чего, необходимо сделать его исполняемым.

chmod +x /etc/aster_check

Добавим скрипт в crontab для ежеминутного запуска скрипта.

crontab -e

В конце добавляем:

* * * * * /etc/aster_check

По умолчанию, настройки кронтаба запускают скрипт каждую минуту.

Если необходимо запускать скрипт чаще чем 1 минуту.[]

По скольку Crontab не умеет запусть файлы чаще чем 1 минуту, то видоизменим скрипт и добавим цикл for. Цикл For не очень удобен для больших шагов, но для нашей задачи и с целью минимизирования скрипта подходит лучше всего.

#!/bin/bash


MinTrunk=21 #Минимальное количество зарегистрированных транков

log="/var/log/aster_check.log"  #Путь к log файлу
asterisk="/usr/sbin/asterisk" #Путь к файлу обработчика Asterisk
sleep="/bin/sleep" #Путь к файлу обработчика команды sleep
service="/etc/init.d/asterisk" #Путь к службе Asterisk

for step in 1 2 3 4 5 6
        do

# Проверяем, запущена ли служба Asterisk, если не запущена, запускаем.
ServWork=`$asterisk -rx 'sip show registry' | grep -i "Unable to connect" | wc -l`

        if [ $ServWork -eq "1" ]; then 
                echo "Запуск службы Asterisk" >>$log
                $service start

        fi

#Проверяем количество зарегистрированных транков, если значение меньше определенного, переподключаем транки.
CurKolTrunk=`$asterisk -rx 'sip show registry' | grep -i "register" | wc -l`


         if [ $CurKolTrunk -lt $MinTrunk ]; then

                        echo "Количество зарегистрированных транков: $CurKolTrunk" >> $log
                        echo "`date` Перезапуск SIP транков."  >> $log
                        $asterisk -rx 'sip reload'

                fi
        $sleep 10
        done
exit