img

Перезагрузка Asterisk по расписанию

В версиях Asterisk начиная с версии 1.4 периодически наблюдались проблемы с утечкой памяти, которые лечились с помощью перезагрузки сервера. Так как никто не застрахован от вероятных неизвестных багов, лучше для перестраховки перезагружать сервер IP - АТС раз в неделю (или чаще) с помощью скрипта. В статье расскажем про создание bash скрипта и его настройку в cron.


Скрипт перезагрузки

По факту, в скрипте достаточно одной команды перезагрузки. Сделаем немного информативной нагрузки – добавим запись в лог – файл: мы будем записывать дату и время ребута с лог – файл. Итак, создаем файл reboot.sh:

[root@asterisk ~]# touch reboot.sh

Далее открываем этот файл для редактирования через vim редактор:

[root@asterisk ~]# vim reboot.sh

Открыв файл, нажмите «О» для редактирования. Вставьте код, указанный ниже:

#!/bin/sh
LOGFILE=/home/admin/log_mail.txt
DATE="`date +%d.%m.%Y" "%H:%M:%S`"
echo "REBOOT :: $DATE :: Reboot is in progress" >> "$LOGFILE"
shutdown -r now
Перезагрузка Asterisk по расписанию

После этого нажимаем комбинацию «:x!» для сохранения конфигурации. В данном скрипте:

  • LOGFILE - переменная, которая указывает на лог – файл;
  • DATE - записываем дату и время в указанную переменную;
  • echo "…" - записываем в лог – файл отметку о перезагрузке;
  • shutdown -r now - команда перезагрузки сервера;

Получаем простенький скрипт для осуществления перезагрузки. Осталось только сделать его работу по расписанию. Для этого, мы воспользуемся планировщиком cron:

*     *     *   *    *        команда для выполнения
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- день недели (0 - 6) (Воскресенье=0)
|     |     |   +------- месяц (1 - 12)
|     |     +--------- день месяца (1 - 31)
|     +----------- час (0 - 23)
+------------- минута (0 - 59)

Зашедулим скрипт на выполнение каждую полночь в воскресение. Для этого, открываем для редактирования crontab файл:

[root@asterisk ~]# crontab -e

В открывшийся файл добавляем:

0 0 * * 0 /bin/bash /home/reboot.sh >/dev/null

Где /home/reboot.sh - полный путь к скрипту перезагрузки сервера. Нажимаем F2 и далее Yes. Задача на выполнение сохранена.


Примеры планирования в cron

Разберем пару примеров того, по какому расписанию можно планировать выполнение скрипта:

  1. 15 0 1 1,3,6,9,12 * - выполнение скрипта каждое 1 число января, марта, июня, сентября и декабря в 00:15 ночи;
  2. 0 20 * 8 1-5 - выполнение скрипта каждый будний день в 20:00 в августе;
  3. 0 0 1,15,25 * * - выполнение скрипта в полночь каждого месяца первого, пятнадцатого и двадцать пятого числа;
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Еще по теме:
img
Мы создали калькулятор инсталляции IP - АТС Asterisk. При планировании сервера и необходимого оборудования заполните соответствующие поля для расчета производительности, шлюзов и плат
img
Скачать руководство администратора Cisco UCM/CME на русском языке
img
Скачать руководство администратора FreePBX на русском языке
img
Рассказываем как рассчитать пропускную способность для IP-вызовов Cisco
img
Рассказываем как настроить отправку СМС сообщений из контакт-центра Октелл через Ростелеком СМС Реклама