img

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

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

В версиях 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 * * - выполнение скрипта в полночь каждого месяца первого, пятнадцатого и двадцать пятого числа;
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Привет, дорогой читатель! В повседневной работе зачастую не хватает автоматизации. Поэтому, мы решили создать калькулятор инстал
img
Мы подумали, а почему бы не консолидировать все знания по Cisco VoIP продуктам и их настройке в единый документ? Добавить в них
img
Привет! Для удобства, мы структурировали все материалы по графическому интерфейсу FreePBX в нашей базе знаний в единый файл. Сам
img
Вам, как сетевому инженеру, крайне важно разбираться в том, каким образом вызовы VoIP влияют на пропускную способность канала в
img
В этой статье расскажем как отправлять различные СМС сообщения пользователям, позвонившим в контакт-центр Октелл и запросившим т
img
Всем современным кампаниям, производящим товары и оказывающим услуги, необходимо иметь специалистов, работающих с потенциальными
21 ноября
20:00
Бесплатный вебинар
Введение в Docker