Количество активных звонков\каналов в Asterisk - вывод в файл

Количество активных звонков\каналов в Asterisk - вывод в файл

Иногда бывает, что надо определить, хватает ли каналов городских линий, при условии, что городской оператор подключен к Asterisk. Для сбора такой статистики в нашей компании, мы решили записывать кажду минуту (в идеале, конечно, надо чаще) количество активных звонков\каналов в Asterisk в файл, чтобы потом построить график, если потребуется.

Задача делится на два этапа:

  1. Добиться вывода в файл в ручном режиме.
  2. Запихнуть скрипт в cron.

Команда для вывода нужных сведений на экран такая (тут же есть и время):

root@ast:~# echo `date +"%d/%m/%y %H:%M:%S"` - `/usr/sbin/asterisk -rx "core show channels" | grep "call\|channel"`
11/12/15 12:02:11 - 2 active channels 1 active call 230 calls processed

Записываем нашу команду в файл .sh:

root@astspb:~# cat active-calls.sh
#!/bin/bash

echo `date +"%d/%m/%y %H:%M:%S"` - `/usr/sbin/asterisk -rx "core show channels" | grep "call\|channel"` >> /home/user/active-calls.log
root@astspb:~#

Сделаем файл исполняемым:

chmod +x active-calls.sh

Теперь надо это делать по расписанию. Запускаем crontab (под рутом) и формируем задание.

sudo crontab -e

Если нужен какой-то конкретный текстовый редактор, надо вот так:

sudo EDITOR=vim crontab -e

Добавляем эту строку в файл и не забываем добавить пустую строку в конец файла:

* * * * * /home/user/active-calls.sh

Проверяем, что задание добавилось:

root@ast:~# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

* * * * * /home/user/active-calls.sh

На этом все.

linux (ru), asterisk (ru)

  • Просмотров: 6585
Добавить комментарий

Related Articles