Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Периодические процессы

За выполнение месячных и дневных периодически процессов отвечает программа /usr/abills/libexec/periodic

Примеры использования

Дневной периодик

Code Block
languagebash
/usr/abills/libexec/periodic daily

Дневные периодические процессы, система выполняет дневные периодические действия по всем модулям системы.

Порядок выполнения:

  • Установка кредитов

  • Обнуление скидок

  • Перенос должников по группам

  • Выполнение расписания

    • изменении тарифных планов

    • Установка статусов блокировки

    • выполнение других команд

  • Функции модулей

    • дневная абон. плата

    • управление оборудованием

  • Отправка E-mail отчётов администратору системы

  • Отправка E-mail предупреждений пользователям о израсходованном балансе

Месячный периодик


Code Block
languagebash
titleМесячный периодик
/usr/abills/libexec/periodic monthly

Месячный периодический процесс. Выполнение месячных процессов системы по всем подключенным модулям

  • Функции модулей

    • месячная абон. плата

    • месячная распределённая абон. плата (снимается каждый день)

    • управление оборудованием

  • Отправка E-mail отчётов администратору системы

  • Отправка E-mail предупреждений пользователям о израсходованном балансе

  • Резервное копирование базы данных

Чтобы отключить создание бакапа при месячном периодике запускайте команду со следующими параметрами

Code Block
titleМесячный периодик без бекапа
/usr/abills/libexec/periodic monthly SKIP_MODULES=backup


Архивация базы

Code Block
languagebash
/usr/abills/libexec/periodic backup

Выполнить резервное копирование 
При выполнении бекапа система пропускает таблицы:

ipn_traf_detail

s_detail

ipn_log_backup

ipn_unknow_ips

errors_log

_old _YYYY_MM_DD


Аргументы

BACKUP_IGNORE='table1,table2'Список игнорируемых таблиц

Бекап и востановление базы по файлам

Возникают ситуации когда нужно получить бекап таблиц с разбивкойпо файлам.


BY_TABLE=1
Включить режим бекапа по файлам
RESTORE=1 Включить режим востановления. Система востанавливает файлы с каталога /usr/abills/backup/_[поточная дата]
RESTORE_DB База для востановления



Запуск расписания принудительно

Code Block
languagebash
/usr/abills/libexec/periodic daily SHEDULE=1 DATE=xxxx-xx-xx


Автоматическое выполнение

Вносим в cron периодические процессы /etc/crontab

Code Block
languagebash
 */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Запускать только определённую функцию. Список функцый находиться в Abills/[module]/config
SKIP_FNПропускать запуск определенных функций. Список функцый находиться в Abills/[module]/config
SHEDULEВыполнить только расписания
SET_FULL_CREDITУстановка кредита абонентам на сумму всех услуг акаунта, для компаний на сумму всех услуг абонентов компании
FULL_CREDIT_PERIODУстановить время действия полного кредита в днях
SKIP_TPS="1,2,3"Не применять кредит для абонентов имеющих следующие тарифные планы
LOGINВыполнить периодический процесс только для определённого логина или логинов, логины нужно указывать через запятую
DEBUG=[0..7]

Режим отладки 0-7

При уровне дебага выше 7 система показывает действия на выполнение но не производит начисление абонплаты


Установка кредита на сумму всех услуг

Кредит устанавливается на сумму всех услуг предоставляемых абоненту.

Данный кредит устанавливается исходя из следующий критериев:

  • только активным абонента (статус акаунта: активно)

  • если поле кредит не содержит другого значения кредита

  • если сумма на счету меньше суммы общего кредита абонента

Для компаний кредит устанавливается в размере суммы всех используемых услуг абонентами компании.
По умолчанию кредит предоставляется на неограниченный срок. Если нужно установить срок кредита нужно использовать параметр FULL_CREDIT_PERIOD. При использовании параметра FULL_CREDIT_PERIOD дата начала кредита считается датой выполнения программы, если другое не указано в аргументах 
Пример использования
Установка кредита на 10 дней. Кредит будет начисляться в 0.00 1 числа каждого месяца.

Code Block
languagebash
title/etc/contab
0	0	1	*	* root /usr/abills/libexec/periodic SET_FULL_CREDIT FULL_CREDIT_PERIOD=10

Параметры

Code Block
languagebash
*/5 * * * * root /
UIDВыполнить только для определённого UID
LOGINВыполнить только для определённого логина
COMPANY_IDВыполнить только для определённой компании. 
Только для компаний COMPANY_ID='>0'

billd

abills/libexec/billd

Формат запуска

Code Block
languagebash
billd [plugin] [parameters]

Программа осуществляет контроль состояния системы

Возможности

  • контроль активности абонентов

  • контроль состояния депозита

  • контроль скорости

  • контроль синхронизации сессий с состоянием билинга, и удаление зомби сессий

  • контроль работы программ

  • существует интерфейс наращивания функционала через плагины

Установка

/etc/crontab

DEPOSIT="<10"Фильтрация по депозитам для услуги полный кредит
GID="1;2;3"Фильтрация по группам для услуги полный кредит
SKIP_TPS="23,45,67" Не устанавливать кредит если у абонента есть тарифные планы из списка


Ротация логов

Система ротации логов АСР.

Производиться ротация всех файлов /usr/abills/var/log/*.log


Code Block
/usr/abills/libexec/billd -all

Аргументы командной строки

Code Block
languagebash
collapsetrue
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/. Плагины вызываются при явном указании их названия. При вызове плагинов другие операции не производятся.
periodic rotate