2009-04-03 10 views
5

Это то, что мой файл кронтаб выглядит следующим образом:Идти орехи с исполнением скрипта python через crontab на debian!

* * * * * root /usr/bin/python /root/test.py >> /root/classwatch.log 2>&1 

Это то, что мой питон скрипт выглядит следующим образом:

#!/usr/bin/python 
print "hello" 

cronjob создает файл журнала. Но он пуст. Я также уверен, что файл python не выполняется.

Цените любую помощь! Я играю с ним последние 4 часа без везения.

+0

0 1 * * */home/me/myscript указан как действительная запись crontab – ojblass

+0

Можете ли вы дать нам вывод «откуда корень», «какой корень» и «найти/-name root 2>/dev /ноль"? Debian не разрешает пользователю указывать в crontab, поэтому мы должны предположить, что root - это команда, вызываемая (см. Мой ответ). – paxdiablo

+0

Вам придется отказаться от раздела пользователя. Скорее su -, отредактируйте crontab как root, оставив имя пользователя, и оно будет выполнено под этим пользователем. –

ответ

1

Обновлено ...

Замените содержимое с

* * * * * date >> /tmp/foo 

ли это link помощь?

Удалить файл, который предполагается создать. Он возвращается? Я думал, что каждый пользователь имеет свой собственный файл crontab, поэтому пользователь на линии является suspsect.
DId кто-то играет на вас шутку и заменяет двоичный код python на no op?

Я должен думать, что cron не работает правильно, так как эхо не работает. Вы обязательно изменили выходной каталог на/tmp с помощью эха?

можете ли вы сделать восьмеричный дамп файла и посмотреть, может быть, вы положили контрольный символ или вкладку в файл cron?

+0

1. Звездный материал довольно стандартный. Все звезды означают каждую минуту. 3. Поскольку большой скрипт находится в python. Содержимое скрипта python здесь просто для абстракции. 4. Пробовал это. Не повезло. Таким образом, проблема с cron, если файл журнала даже не отображает «hi» из эха – 2009-04-03 00:36:43

0

Вы пытались поставить скрипт где-нибудь еще (например,/usr/local/bin /)?

+0

Я думаю, что проблема может быть связана с самой командой cron, потому что даже простой «echo hi» не записывается в файл журнала , – 2009-04-03 00:38:59

0

Это отлично работает для меня на моем ящике RHES 4 Linux точно так, как показано (ПРИМЕЧАНИЕ: я удалил имя пользователя root в crontab).

Я подозреваю, что что-то не так с тем, как вы устанавливаете свое задание cron или конфигурацию cron на вашей системе. Как вы устанавливаете это? Вы используете crontab -e или какой-либо другой метод? Можете ли вы успешно запустить любые другие задания cron для root?

+0

хорошая точка примерно как корень ... – ojblass

0

Возможно, это связано с невыполнением задания, которое было объявлено ранее из-за ошибки синтаксиса. Можете ли вы вставить свой весь кронтаб? Насколько я вижу.

0

Запись кронтаба является правильной, если вы редактируете/и т.д./кронтаб - однако если вы с помощью кронтаба вашего обычного пользователя (т.е. кронтаба -e, кронтаб crontabfle и т.д.) запись корня синтаксический неправильно.

0

Попробуйте просто послать стандартный вывод в файл журнала, а не как поток ошибок и стаут:
/USR/бен/питон /root/test.py> /root/classwatch.log

4

Есть два способа создайте crontab - для пользователя или глобально. Для глобального кронтаб (/ и т.д./кронтаб) можно указать пользователя, в соответствии с:

# m h dom mon dow user command 
17 * * * * root  cd/&& run-parts --report /etc/cron.hourly 

Для пользователей crontabs вы этого не сделаете, в соответствии с:

[email protected]:~$ crontab -l 
0 * * * * /home/aj/bin/update-foobar 

Чтобы получить питон скрипт работает через #!нотации, вы просто сделать скрипт исполняемым (CHMOD 755 /root/test.py), и вызывать его непосредственно, что-то вроде:

/root/test.py 

Если вы не хотите, чтобы сделать это, вы можете запустить его с помощью питон интерпретатор вручную, как:

/usr/bin/python /root/test.py 

Это предполагает, в зависимости от того пользователя, которое вы бежите как (то есть пользователь в/и т.д./кронтабе или пользователь, вы работаете кронтаб -e как) имеете разрешения, чтобы увидеть скрипт python -/root может быть недоступен для обычных пользователей, например.

Вы можете получить хорошее представление о том, что скрипт выполняется на всех, добавив:

import time 
time.sleep(20) # pause for 20 seconds 

, а затем проверку с «сверху» или «пс Окс» или «pstree», чтобы увидеть, если питон на самом деле Бег.

1
chmod 755 /root/test.py 

, а затем

* * * * * /root/test.py >> /root/classwatch.log 2>&1 

должен работать.

 Смежные вопросы

  • Нет связанных вопросов^_^