====== Динамічний шейпер ====== Ubilling починаючи з версії 0.1.7 підтримує нативную механіку зміни користувацьких швидкостей в обхід тарифних, в залежності від часу доби. Для керування динамічними шейперами в довільних часових проміжках існує відповідний модуль.\\ Швидоксті в ньому задаются у вигляді інтервалів часу в форматі ГГ:ХХ:СС "від та до". Логіка тарифа "5 мегабіт вдень / 10 вночі" легко відстежуется по скріншоту наведенному нижче.\\ {{ :dshaper.png?500 |}} Будьте уважні при заповненні часових відрізків - для кожного тарифу необхідні мінімум дву умови, щоб швидкість повернулась "на місце". Кількість правил динамічного шейпера практично не обмежено (1440 правил на кожен тариф достатньо?). В результаті отримаємо "день" від 08:11:00 ранку та до 23:59:59, після чого починаєтся "нічь", яка буде тривати до 08:10:59.\\ Для того, щоб ця вся радість працювала передбаченим чином буде потрібно запустити скрипт dnswitch (в дистрибутиві він знаходится в **docs/dshaper/**) в потрібні інтервали часу. \\ \\ В нормі передбачено, що скрипт dnswitch повинен знаходитись в директорії **/etc/stargazer** поруч з директорією **dn**:\\ # cp docs/dshaper/dnswitch.php /etc/stargazer/ Також dnswitch повинен мати доступ до БД біллінгу, щоб отримувати відомості про швикдості користувачів на різних тарифах в поточний інтервал часу. //mysql settings $db_host='localhost'; $db_database='stg'; $db_login='mylogin'; $db_password='newpassword'; В crontab це повинно виглядати наступним чином:\\ 02 0 * * * /usr/local/bin/php /etc/stargazer/dnswitch.php >> /var/log/dn.log 12 8 * * * /usr/local/bin/php /etc/stargazer/dnswitch.php >> /var/log/dn.log \\ У випадку, якщо Ви викорситовуєте початкові заготівлі скриптів OnConnect/OnDisconnect, //нічого більше// для успішної роботи динамічного шейпера //не потрібно//. Якщо це не так, перевірте, що в них існують наступні секції:\\ /bin/echo $SPEED:`expr $ID + 18101` > /etc/stargazer/dn/$LOGIN /bin/chmod 777 /etc/stargazer/dn/$LOGIN /bin/rm /etc/stargazer/dn/$LOGIN Власне, це потрібно для того, щоб dnswitch знав хто з абонентів наразі онлайн (зрозуміло, що змінювати швикість неактивним абонентам безперспективно) та які пайпи dummynet їм відповідають. \\ \\ Починаючи з Ubilling 0.4.7 динамичічний шейпер вмикаєтся опцією DSHAPER_ENABLED.