Перейти до

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


Рекомендованные сообщения

читал и настраивал как написано здесь 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
Ссылка на сообщение
Поделиться на других сайтах
Опять "динамический шейпер не работает"?

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

 

abonent1000

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

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

 

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

Відредаговано mgo
Ссылка на сообщение
Поделиться на других сайтах

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

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

Відредаговано Demid
Ссылка на сообщение
Поделиться на других сайтах

 

 

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

 

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

 

 

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

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

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

 

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

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

 

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 минут. Это так и задумано или я чего-то не догоняю?

Відредаговано abonent1000
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах

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

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

щось типу

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 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

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

Ссылка на сообщение
Поделиться на других сайтах
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 с этого сервера покажите.

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

Ссылка на сообщение
Поделиться на других сайтах

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
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, nightfly сказал:

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, l1ght сказал:

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

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах

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

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

934715441_.PNG.1b80d6d4d61aa0f5f31717254913484c.PNG

Настроил crontab -e

crontab.PNG.30f526b0719138c9831fa6b2fc38b66c.PNG

 

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

 

Где подвох ?

Ссылка на сообщение
Поделиться на других сайтах
41 минуту назад, cetim сказал:

Где подвох

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

 

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

Відредаговано nightfly
Оо
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...