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Установить время действия полного кредита в днях
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

Параметры

UIDВыполнить только для определённого UID
LOGINВыполнить только для определённого логина
COMPANY_IDВыполнить только для определённой компании. 
Только для компаний COMPANY_ID='>0'
DEPOSIT="<10"Фильтрация по депозитам для услуги полный кредит
GID="1;2;3"Фильтрация по группам для услуги полный кредит