LINUX.ORG.RU

crontab != manually


0

0

Дано:

1)

root@nfCollector /usr/local/bin]# uname -a
FreeBSD nfCollector.bla-bla.ru 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009     root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

2)

[root@nfCollector /home/dmitry]# crontab -l
7       *       *       *       *      /usr/local/bin/send2billing.sh
*/5     *       *       *       *      /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

Как и положено крон отрабатывает каждые 5 минут, на на странице cpu.html вижу: время после инициализации устройства 'NetFlow-Collector': 14748 суток, 12:05:01..

че за хрень..??!!

Делаю вручную /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg проверяю: время после инициализации устройства 'NetFlow-Collector': 1 суток, 06:04:41..

В чем разница команды от root в ручную или тож самое от root но кроном?

P.S.

[root@nfCollector /usr/local/bin]# grep NetFlow-Collector /usr/local/www/mrtg/cpu.html
����� ����� ������������� ���������� <strong>'NetFlow-Collector'</strong>: <strong>14748 �����</strong>, <strong>12:05:01</strong>..
[root@nfCollector /usr/local/bin]# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
[root@nfCollector /usr/local/bin]# grep NetFlow-Collector /usr/local/www/mrtg/cpu.html
����� ����� ������������� ���������� <strong>'NetFlow-Collector'</strong>: <strong>1 �����</strong>, <strong>06:01:28</strong>..
[root@nfCollector /usr/local/bin]

★★★

Ответ на: комментарий от dreamer

SHELL=/bin/bash (или где там во фре шелл)+

[root@nfCollector /home/dmitry]# crontab -l
7       *       *       *       *      /usr/local/bin/send2billing.sh
*/5     *       *       *       *      /usr/local/bin/mrtg.sh
[root@nfCollector /home/dmitry]# cat /usr/local/bin/mrtg.sh
SHELL=/usr/local/bin/bash
/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
[root@nfCollector /home/dmitry]# 

спасибо, но не помогает:(

Снова, запускаю вручную и аптайм в cpu.html правильный, запускает крон и аптайм не правильный.

papay ★★★
() автор топика
Ответ на: комментарий от iSage

> Разница в переменных окружения.

Тогда объясните пожалуйста. Я рут и крон рутовый, в чем разница?

papay ★★★
() автор топика
Ответ на: комментарий от papay

SHELL надо именно в кронтабе прописать в первой строке, а не в скрипте:

#crontab -l
SHELL=/usr/local/bin/bash
7 * * * * /usr/local/bin/send2billing.sh
*/5 * * * * /usr/local/bin/mrtg.sh

dreamer ★★★★★
()
Ответ на: комментарий от dreamer

SHELL надо именно в кронтабе прописать в первой строке, а не в скрипте:

Нет, все равно, что то не так... Вот, смотрите:

crontab: installing new crontab
[root@nfCollector /home/dmitry]# crontab -l
SHELL=/usr/local/bin/bash
7       *       *       *       *      /usr/local/bin/send2billing.sh
*/5     *       *       *       *      /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
[root@nfCollector /home/dmitry]# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
[root@nfCollector /home/dmitry]# grep NetFlow-Collector /usr/local/www/mrtg/cpu.html
����� ����� ������������� ���������� <strong>'NetFlow-Collector'</strong>: <strong>1 �����</strong>, <strong>15:54:29</strong>..
[root@nfCollector /home/dmitry]# grep NetFlow-Collector /usr/local/www/mrtg/cpu.html
����� ����� ������������� ���������� <strong>'NetFlow-Collector'</strong>: <strong>14748 �����</strong>, <strong>22:05:00</strong>..
[root@nfCollector /home/dmitry]#
papay ★★★
() автор топика
Ответ на: комментарий от dm1024

> Крон свой собственный.

Не совсем понял. Если это вопрос, то думаю, что крон совой собственный, ну я ведь и крон от пользователя рут делал. И когда стартую руками то от рута.

papay ★★★
() автор топика
Ответ на: комментарий от papay

cron invokes the command from the user’s HOME directory with the shell, (/usr/bin/sh).
cron supplies a default environment for every shell, defining:
HOME=user’s-home-directory
LOGNAME=user’s-login-id
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh

iSage ★★★★
()
Ответ на: комментарий от dreamer

Решилось путем добавления строчки в /etc/crontab
Конечно не совсем красиво писать в /etc, но теперь все отрабатывается правильно:)

however, as long as it works....
Спасибо за участие!

papay ★★★
() автор топика
Ответ на: комментарий от iSage

> cron invokes the command from the user’s HOME directory with the shell, (/usr/bin/sh) cron supplies a default environment for every shell, defining:

дык и там и там root,
+ пути я прописывал полные:)

Спасибо за участие!

papay ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.