Jump to content

Динамический шейпер не запускается из cron


Recommended Posts

читал и настраивал как написано здесь http://wiki.ubilling.net.ua/doku.php?id=dnswitch

 

в файле /etc/crontab вписал два задания как в примере, но скорость остается без изменения 

 

Если же в командной строке выполнить:

php /etc/stargazer/dnswitch.php >> /var/log/dn.log

 

то динамический шейпер срабатывает и в /var/log/dn.log вносится соответствующий лог.

 

Вопрос: Проблема скорее всего в правах доступа crona к файлу dnswitch.php?

 

Если так, подскажите куда копать

 

 

Заранее спасибо!

 

  • Like 1
Link to post
Share on other sites
Опять "динамический шейпер не работает"?

тут здається крон непрацює

 

abonent1000

в кінці кронтаб має бути порожній рядок (жмакніть ентр в кінці останнього рядка в кронтаб і збережіть)

в лозі крона наступної хвилини після збереження має з'явитися запис, про успішне перезавантаження правил з кронтаб або матюк на помилку.

 

лог крона в /var/log/crontab.log (або без розшинення .log непамятаю точно)

Edited by mgo
Link to post
Share on other sites

копать в сторону правильного времени срабатывания, "время от" и "время до"

и crontab рута находится там же где и все остальные в /var/cron/tabs, а в /etc/crontab находится системный

Edited by Demid
Link to post
Share on other sites

 

 

Ну в мануале этого нет, абонент явно ни один из вариантов не делал))

 

http://wiki.ubilling.net.ua/doku.php?id=dnswitch

 

 

В crontab это должно выглядеть следующим образом:

Отсутствие после тайминга, логина пользователя под которым это должно исполняться - явно намекает на -e.

Link to post
Share on other sites

 

Опять "динамический шейпер не работает"?

тут здається крон непрацює

 

abonent1000

в кінці кронтаб має бути порожній рядок (жмакніть ентр в кінці останнього рядка в кронтаб і збережіть)

в лозі крона наступної хвилини після збереження має з'явитися запис, про успішне перезавантаження правил з кронтаб або матюк на помилку.

 

лог крона в /var/log/crontab.log (або без розшинення .log непамятаю точно)

 

саме так, Cron не працює. З самим шейпером все нормально, так як з командної строки він спрацьовує. Зробив порожній рядок

 

копать в сторону правильного времени срабатывания, "время от" и "время до"

и crontab рута находится там же где и все остальные в /var/cron/tabs, а в /etc/crontab находится системный

в принципе, нет никакой разницы каким кроном запускать задание - системным или пользовательским?

 

 

Ну в мануале этого нет, абонент явно ни один из вариантов не делал))

 

http://wiki.ubilling.net.ua/doku.php?id=dnswitch

 

 

В crontab это должно выглядеть следующим образом:

Отсутствие после тайминга, логина пользователя под которым это должно исполняться - явно намекает на -e.

 

Спасибо за подсказку - в системный крон (/etc/crontab) после тайминга указал пользователя под которым  запускать (root):

1 2 * * * root /usr/local/bin/php /etc/stargazer/dnswitch.php >> /var/log/dn.log

вроде бы завелось - ipfw pipe show показывает правильные скорости. Проблема решена. Всем спасибо!

 

Вот только хотел уточнить один момент.

Допустим в /etc/crontab время срабатывания динамического шейпера 2 часа ночи. Шейпер сработал и вдруг сервак перезагрузился (не важно по какой причине). После перезапуска системы шейпер на запускается, т.к. он должен был по расписанию запуститься в 2 часа ночи, а система ребутнулась в 2 часа и 15 минут. Это так и задумано или я чего-то не догоняю?

Edited by abonent1000
Link to post
Share on other sites

1. Коню понятно, что оно под рутом работать должно, ибо dummynet напрямую крутит (и чсх, это в видео вполне четко показано)

2. Откройте для себя наконец существование комманды crontab -e из под рута, это существенно облегчает жизнь. Нет рестартить крон не надо, он умный и умеет всасывать задачи сам.

3. Если у вас сервер спонтанно ребутится, когда ни попадя - у вас совсем другого порядка проблемы о которых надо страдать. Это типа как будто бы, переживать изза вросшего ногтя, на фоне одновременных открытой ЧМТ и рака с метастазами.

Edited by nightfly
Link to post
Share on other sites

динамічний шейпер повинен викликатися в період зміни швидкості.

чому взагалі перезавантажувати сервер? ну й якщо ви так любите збочення - додайте на автозапуск його :)

щось типу

chmod +x /etc/stargazer/dnswitch.php
ln -fs /etc/stargazer/dnswitch.php /etc/rc.d/dnswitch.php

чи запихайте його в /etc/rc.d/billing

Link to post
Share on other sites
  • 3 years later...

Добрый вечер. Возникла не большая проблема. При запуске шейпера вылазит ошибка:

PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /etc/stargazer/dnswitch.php:69
Stack trace:
#0 /etc/stargazer/dnswitch.php(87): simple_queryall('SELECT `login`,...')
#1 /etc/stargazer/dnswitch.php(124): dshape_GetAllUserTariffs()
#2 {main}
  thrown in /etc/stargazer/dnswitch.php on line 69

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /etc/stargazer/dnswitch.php:69
Stack trace:
#0 /etc/stargazer/dnswitch.php(87): simple_queryall('SELECT `login`,...')
#1 /etc/stargazer/dnswitch.php(124): dshape_GetAllUserTariffs()
#2 {main}
  thrown in /etc/stargazer/dnswitch.php on line 69

Пароль и логин к базе проверил.

Link to post
Share on other sites
3 часа назад, cetim сказал:

PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /etc/stargazer/dnswitch.php:69

Упс. uname -a и php -v а также php -m с этого сервера покажите.

Попробуем пофиксить.

Link to post
Share on other sites

root@ubilling:/usr/home/ubilling # uname -a
FreeBSD ubilling 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r321309: Fri Jul 21 02:08:28 UTC 2017     root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/
GENERIC  amd64

root@ubilling:/usr/home/ubilling # php -v
PHP 7.0.21 (cli) (built: Sep  7 2017 05:51:40) ( NTS )
Copyright (c) 1997-2017 The PHP Group


Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.21, Copyright (c) 1999-2017, by Zend Tech
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

Link to post
Share on other sites
10 часов назад, nightfly сказал:

Упс. uname -a и php -v а также php -m с этого сервера покажите.

Попробуем пофиксить.

та там и так ясно, что 7 пхп который разучился в mysql_connect()

Link to post
Share on other sites
4 минуты назад, l1ght сказал:

та там и так ясно, что 7 пхп который разучился в mysql_connect() 

Ты недооцениваешь этих людей.

3 часа назад, cetim сказал:

PHP 7.0.21 (cli) (built: Sep  7 2017 05:51:40) ( NTS )

окей, на досуге попробуемс пофиксить

Link to post
Share on other sites

Небольшая проблемка.

Настроил шейпер 

934715441_.PNG.1b80d6d4d61aa0f5f31717254913484c.PNG

Настроил crontab -e

crontab.PNG.30f526b0719138c9831fa6b2fc38b66c.PNG

 

При первом запуске скорость меняется, а при следующем запуске в 17 мин она не возвращается.

 

Где подвох ?

Link to post
Share on other sites
41 минуту назад, cetim сказал:

Где подвох

Всюду. Смотрите глазами в свои время-от-до и в ваш кронтаб. Подсказка - dnswitch смотрит время только "щас", интервалы перекрываются. В доке красиво нарисовано как выглядит "ночная скорость".

 

Для отладки в первый раз, запускать можете руками без вывода в лог - это ничем не отличается. Просто будете видеть, как "щас" меняется текущая скорость абонента.

Edited by nightfly
Оо
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...