Периодические процесcы
Периодические процессы
За выполнение месячных и дневных периодически процессов отвечает программа /usr/abills/libexec/periodic
Примеры использования
Дневной периодик
# /usr/abills/libexec/periodic daily
Дневные периодические процессы, система выполняет дневные периодические действия по все модулям системы.
Порядок выполнения
- установка кредитов
- обнуление скидок
- перенос должников по группам
- Выполнение расписания
- изменении тарифных планов
- Установка статусов блокировки
- выполнение других команд
- Функции модулей
- дневная абон. плата
- управление оборудованием
- отправка E-mail отчётов администратору системы
- отправка E-mail предупреждений пользователям о израсходованном балансе
Месячный периодик
# /usr/abills/libexec/periodic monthly
Месячный периодический процесс. Выполнение месячных процессов системы по все подключенным модулям
- Функции модулей
- месячная абон. плата
- месячная распределённая абон. плата (снимается каждый день)
- управление оборудованием
- отправка E-mail отчётов администратору системы
- отправка E-mail предупреждений пользователям о израсходованном балансе
- Резервное копирование базы данных
Архивация базы
# /usr/abills/libexec/periodic backup
Выполнить резервное копирование
При выполнении бекапа система пропускает таблицы _old _YYYY_MM_DD
Аргументы
BACKUP_IGNORE='table1,table2' | Список игнорируемых таблиц |
---|
Запуск расписания принудительно
# /usr/abills/libexec/periodic daily SHEDULE=1 DATE=xxxx-xx-xx
Автоматическое выполнение
Вносим в cron периодические процессы /etc/crontab
*/5 * * * * root /usr/abills/libexec/billd -all 1 0 * * * root /usr/abills/libexec/periodic daily 1 1 * * * root /usr/abills/libexec/periodic monthly
Обратите внимание что дневной периодический процесс желательно запускать в 00:00:00, а месячный через час 01:00:00. Это делается для того чтобы успели отработать все переключения тарифных планов и другие действия планировщика заданий. Месячный периодик запускается каждый день так как он следит за месячной рапределённой абонплатой, месячными периодическими снятиями с произвольными датами и делает бекап.
Аргументы программы
Дополнительные параметры
DATE=2005-10-01 | Дата за которую нужно выполнить периодические процессы |
---|---|
NO_USERS_WARNINGS | Не оправлять предупреждений пользователям о израсходованном депозите |
MODULES=[modules_list,…] | Выполнить периодический процесс только для определённых модулей системы |
SKIP_MODULES=[modules_list] | Не выполнять программу для определённых модулей системы |
NO_ADM_REPORT | Не оправлять администратору отчёт о работе системы |
FN | Запускать только определённую функцию |
SHEDULE | Выполнить только расписания |
SET_FULL_CREDIT | Установка кредита абонентам на суму всех услуг акаунта, для компаний на суму всех услуг абонентов компании |
FULL_CREDIT_PERIOD | Установить время действия полного кредита в днях |
LOGIN | Выполнить периодический процесс только для определённого логина или логинов, логины нужно указывать через запятую |
DEBUG=[0..7] | Режим отладки 0-7 |
Установка кредита на суму всех услуг
Кредит устанавливается на суму всех услуг предоставляемых абоненту.
Данный кредит устанавливается исходя из следующий критериев:
- только активным абонента (статус акаунта: активно)
- если поле кредит не содержит другого значения кредита
- если сума на счету меньше сумы общего кредита абонента
Для компаний кредит устанавливается в размере сумы всех используемых услуг абонентами компании
По умолчанию кредит предоставляется на неограниченный срок. Если нужно установить срок кредита нужно использовать параметр FULL_CREDIT_PERIOD. При использовании параметра FULL_CREDIT_PERIOD дата начала кредита считается датой выполнения программы если другое не указано в аргументах
Пример использования
Установка кредита на 10 дней
# /usr/abills/libexec/periodic SET_FULL_CREDIT FULL_CREDIT_PERIOD=10
Параметры
UID | Выполнить только для определённого UID |
LOGIN | Выполнить только для определённого логина |
COMPANY_ID | Выполнить только для определённой компании. Только для компаний COMPANY_ID='>0' |
billd
abills/libexec/billd
формат запуска
billd [plugin] [parameters]
Программа осуществляет контроль состояния системы
Возможности
- контроль активности абонентов
- контроль состояния депозита
- контроль скорости
- контроль синхронизации сессий с состоянием билинга, и удаление зомби сессий
- контроль работы программ
- существует интерфейс наращивания функционала через плагины
Установка
/etc/crontab
*/5 * * * * root /usr/abills/libexec/billd -all
Аргументы командной строки
checkppp - check Active ppp on FreeBSD session and disconnect unknown ip checkppp - check Active ppp on FreeBSD session and disconnect unknown ip check_cisco_cid - check Cisco cids checkpppd - check Active pppd on Linux session and disconnect unknown ip check_pptpd - chack Active PoPToP deamon on Linux checkmikro - check Active ppp on Mikrotik session and disconnect unknown ip. CHECK speed checkspeed - check cure speed for user on FreeBSD and Linux NAS. Arguments NAS_IDS=xx SHOW_SPEED=1 - Only show current speed checkspeed_mikro - check cure speed for user on Mikrotik. Arguments NAS_IDS=xx speed_expr - Speed Expration SHOW_CUR_SPEED - Show current users speed OS - Local OS (Linux|FreeBSD). Optional params PLUGINS check_dublicates check_programs CHECK connection Alive checklines - Check alive connections -d - deamon mode debug - debug mode NAS_IDS=... - Make actions for NAS
Плагины
Плагины программы размещаются в каталоге abills/libexec/billd.plugins/. Плагины вызываются при явном указании их названия. При вызове плагинов другие операции не производятся.
Watchdog
check_programs - плагин слежения за работой программ.
Параметры
PROGRAMS='radiusd:/usr/local/etc/rc.d/radiusd start;' | Указания списка программ для слежения. [программа]:[команда запуска программы] |
---|
Пример проверка работы радиуса на FreeBSD
# /usr/abills/libexec/billd check_programs PROGRAMS=radiusd
проверка работы радиуса на Linux (UBuntu)
# /usr/abills/libexec/billd check_programs PROGRAMS="radiusd:/etc/init.d/freeradius start"
Пример проверки работы flow-capture на FreeBSD
/usr/abills/libexec/billd check_programs PROGRAMS="flow-capture:/usr/local/etc/rc.d/flow_capture start"
Пример проверки работы ipcad на DEBIAN
/usr/abills/libexec/billd check_programs PROGRAMS="ipcad:/usr/local/bin/ipcad -d"
mx80_change_profile Переключение профайла абонента в зависимости от времени суток
Параметры
NAS_IDS=1 | Номер сервера доступа. Если не указан система делает на всех серверах типа mx80 |
---|---|
DEBUG=1 | Режим отладки |
конфигурация
$conf{BILLD_PLUGINS}='plugin:args;plugin2:args2' | Список плагинов запускаемых после Онлайн проверки. список плагинов указывается через точку с запятой. После названия плагина можно указать аргументы передаваемые ему через двоеточие |
---|
Пример
# /usr/abills/libexec/billd mx80_change_profile
dhcp_clean_leases
Чистка законченных сессий Freeradius DHCP
Пример
# /usr/abills/libexec/billd dhcp_clean_leases
Плагин equipment_ping
Данный плагин пингует оборудование.
Если статус оборудования был «Отключено» и пинги начали доходить - статус меняется на «Активно».
Если статус оборудования был «Включено» и пинги перестали доходить - статус меняется на «Отключено».
В случаее смены статуса на «отключено» создается событие, и все администраторы подписанные на модуль Equipment получают уведомление.
Пример:
# /usr/abills/libexec/billd equipment_ping
Плагин events_check
Плагин проверяет наличие и коректность бэкапов.
Если отсутсвует вчерашний backup или он сформирован не до конца генерирует событие в системе.
Если включён модуль ''Events'', администратору отобразится всплывающее окошко о проблеме с бэкапами.
Пример:
# /usr/abills/libexec/billd events_check
Плагин Events Push
Плагин отправляет все текущие уведомления ( какие отобразились бы в Веб-интерфейсе ) Push уведомлениями (Нужно настроить Push уведомления)
Пример:
# /usr/abills/libexec/billd events_push
Отправка писем о депозите отдельно от периодических начислений
# /usr/abills/libexec/periodics daily NO_USERS_WARNINGS=1 # /usr/abills/libexec/periodics momnthly NO_USERS_WARNINGS=1 # /usr/abills/libexec/periodics daily FN=dv_users_warning_messages
Дублирование удалённой базы
Автоматическое скачивание и наполнения локальной базы на основе удалённого дампа. Удобно использовать при создании тестового сервера и автоматического его обновления с основного. Программа скачивает дамп за текущее число с удалённого сервера и наполняет локальную базу. Можно использовать через cron для ежедневного обновления.
/usr/abills/libexec/billd sync_db
Параметры
DEBUG=1..7 | Режим отладки |
---|
Опции настройки
Удалённый хост синхронизации
$conf{SYNC_DB_HOST}='192.168.1.100:22:/usr/abills/backup/';
Команда синхронизации. Предназначена для синхронизации из нестандарных каталогов или хостов. При её использовании опци $conf{SYNC_DB_HOST} игнорируется
$conf{SYNC_DB_DOWNLOAD}='scp asm@192.168.1.100:22:/usr/abills/backup/stats-%DATE%.sql.gz /usr/abills/backup/stats-%DATE%.sql.gz; ' .'gzip -d /usr/abills/backup/stats-%DATE%.sql.gz --name /usr/abills/backup/sync_dump.sql';
Название локально базы. По умолчанию abills
$conf{SYNC_DB_NAME}='abills_3';