mbcron

Модуль обработки отложенных заданий и команд

Файловая структура модуля

/var/bill
├── mbcron
│   ├── production
│   │   ├── config
│   │   │   └── config.xml
│   │   ├── index.php
│   │   ├── scripts
│   │   │   ├── 5min.sh
│   │   │   ├── block.sh
│   │   │   ├── day.sh
│   │   │   ├── lastday.sh
│   │   │   ├── mrtg.sh
│   │   │   ├── mth.sh
│   │   │   ├── update_bras.sh
│   │   │   ├── update_cpu.sh
│   │   │   ├── update_dev.sh
│   │   │   └── update_ram.sh
│   │   └── updates
│   │       ├── mbcron.current.checksum
│   │       ├── mbcron.downloaded.checksum
│   │       └── mbcron_update.sh
│   └── testing
│       ├── config
│       │   └── config.xml
│       ├── index.php
│       ├── scripts
│       │   ├── 5min.sh
│       │   ├── block.sh
│       │   ├── day.sh
│       │   ├── lastday.sh
│       │   ├── mrtg.sh
│       │   ├── mth.sh
│       │   ├── update_bras.sh
│       │   ├── update_cpu.sh
│       │   ├── update_dev.sh
│       │   └── update_ram.sh
│       └── updates
│           ├── mbcron.current.checksum
│           ├── mbcron.downloaded.checksum
│           └── mbcron_testing.sh
├── logs
│   ├── mbcron
│   │   ├── mbcron.debug
│   │   ├── mbcron.log
│   │   └── update.log

Описание директорий и файлов

файл/директория

описание

/var/bill

домашняя директория биллинга

/var/bill/mbcron

домашняя директория модуля

/var/bill/mbcron/production

production версия модуля

/var/bill/mbcron/testing

testing версия модуля

/var/bill/backup/mbcron

директория для бекапов

<version>/config/config.xml

файл конфига модуля

<version>/index.php

файл с кодом модуля

<version>/scripts

директория с скриптами модуля

<version>/scripts/5min.sh

bash скрипт с набором команд которые необходимо переодически запускать

<version>/scripts/block.sh

bash скрипт с набором команд для блокировки абонентов по балансу

<version>/scripts/day.sh

bash скрипт с набором команд для ежедневных снятий абонплаты

<version>/scripts/mth.sh

bash скрипт с набором команд для ежемесчных снятий абонплаты

<version>/scripts/lastday.sh

bash скрипт с набором команд которые необходимо запускать в конце месяца

<version>/scripts/mrtg.sh

bash скрипт с командами генерации mrtg графиков

<version>/updates

директория с файлами обновления

<version>/updates/mbcron_update.sh

загрузчик и установщик обновлений

<version>/updates/mbcron.current.checksum

файл с md5 суммой текущей версии обновлений

<version>/updates/mbcron.downloaded.checksum

файл с md5 суммой загруженной версии обновлений

/var/bill/logs/mbcron

директория логов модуля

/var/bill/logs/mbcron/mbcron.log

основной лог модуля

/var/bill/logs/mbcron/mbcron.debug

debug лог модуля

/var/bill/logs/mbcron/update.log

лог обновлений модуля

Файл конфигурации

Файл расположен по пути /var/bill/mbcron/<version>/config/config.xml

<config>
  <parameters>
    <mysql>
      <host>DATABASE_IP</host>
      <username>DATABASE_USER</username>
      <password>DATABASE_PASSWORD</password>
      <dbname>DATABASE_NAME</dbname>
    </mysql>
    <timezone>Europe/Kiev</timezone>
    <partialUTF8>false</partialUTF8>
    <debug>false</debug>
    <error_log>/var/bill/logs/mbcron/mbcron.log</error_log>
    <debug_log>/var/bill/logs/mbcron/debug.log</debug_log>
  </parameters>
</config>

параметр

описание

mysql секция

host

IP адрес базы данных

username

имя пользователя для подключения к базе данных

password

пароль пользователя

dbname

название базы данных биллинга

timezone

Временная зона

partialUTF8

Частичное использование UTF8

debug

режим дебага, значения true/false

debug_log

лог файл куда будет записана информация из дебага

error_log

освнойно файл лога

Загрузщик обновлений

Варианты запуска файла /var/bill/mbcron/<version>/mbcron_update.sh

Ключ

Описание

Обычный запуск без параметров, скачает последнюю доступную версию обновления

-f

Режим принудительного повторного обновления (игнорирует md5 проверку)

-t

Произвести загрузку testing версии обновления

Задания cron

  • Файл с заданиями модуля расположен по пути /etc/cron.d/mbcron_production и содержит задания

    • запуск обновления production версии модуля

    • запуск переодичных заданий из скрипта 5min.sh

    • запуск скрипта для блокировки абонентов по балансу (block.sh)

    • запуск скрипта для снятия абонплаты (day.sh, mth.sh)

    • запуск скрипта для заданий выполняющихся в конце месяца (lastday.sh)

    • запуск скрипта для генерации графиков mrtg

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

# update
05 6 * * * root /var/bill/mbcron/production/updates/mbcron_update.sh

# billing tasks
0-59/5 * * * * root /var/bill/mbcron/production/scripts/5min.sh

# mrtg graph
0-59/5 * * * * root /var/bill/mbcron/production/scripts/mrtg.sh

# daily write-offs
57 23 * * * root /var/bill/mbcron/production/scripts/block.sh
58 23 * * * root /var/bill/mbcron/production/scripts/day.sh

# monthly write-offs
59 23 28-31 * * root [ "$(date +%d -d tomorrow)" = "01" ] && /var/bill/mbcron/production/scripts/lastday.sh
01 0 1 * * root /var/bill/mbcron/production/scripts/mth.sh

При возникновении проблем, сообщите о них в нашем CRM или Telegram канале.