Количество активных звонков\каналов в Asterisk - вывод в файл
Иногда бывает, что надо определить, хватает ли каналов городских линий, при условии, что городской оператор подключен к Asterisk. Для сбора такой статистики в нашей компании, мы решили записывать кажду минуту (в идеале, конечно, надо чаще) количество активных звонков\каналов в Asterisk в файл, чтобы потом построить график, если потребуется.
Задача делится на два этапа:
- Добиться вывода в файл в ручном режиме.
- Запихнуть скрипт в 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
На этом все.
- Просмотров: 6800