Перейти к содержимому
Local
abonent1000

Динамический шейпер не запускается из 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

Поделиться сообщением


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

Вообще-то после добавления задания в кронтаб нужно сам crond перезапускать.

Поделиться сообщением


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

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

Поделиться сообщением


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

 

 

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

 

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

Поделиться сообщением


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

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

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 )

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 10.08.2018 в 09:01, cetim сказал:

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

Теоретически исправлено в Ubilling CURRENT 0.9.1 rev 6347

Поделиться сообщением


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×