Периодические процессы
За выполнение месячных и дневных периодически процессов отвечает программа /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
Выполнить резервное копирование
При выполнении бекапа система пропускает таблицы:
ipn_traf_detail
s_detail
ipn_log_backup
ipn_unknow_ips
errors_log
_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' |