=====Периодические процес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/. Плагины вызываются при явном указании их названия. При вызове плагинов другие операции не производятся. [[abills:docs:manual:admin:form_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 или он сформирован не до конца генерирует событие в системе.\\ \\ Если включён модуль [[abills:docs:events|''Events'']], администратору отобразится всплывающее окошко о проблеме с бэкапами.\\ **Пример:** # /usr/abills/libexec/billd events_check ====Плагин Events Push ==== Плагин отправляет все текущие уведомления ( какие отобразились бы в Веб-интерфейсе ) Push уведомлениями (Нужно настроить [[abills:docs:manual:sender: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 ====Дублирование удалённой базы==== {{:abills:docs:manual:periodic:dbsync.jpg?nolink&400|}} Автоматическое скачивание и наполнения локальной базы на основе удалённого дампа. Удобно использовать при создании тестового сервера и автоматического его обновления с основного. Программа скачивает дамп за текущее число с удалённого сервера и наполняет локальную базу. Можно использовать через 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';