2010-03-03 2 views
3

я следовал предложение в this questionКак узнать, выполнялись ли задания? - Crontab

, как я использую Django, я поставил скрипт на дату и время каждого запуска скрипта в БД магазина, но запись не была еще хранится в база данных.


Есть ли способ выяснить, кроме ввода «сверху» и поиска?

+0

Записывает ли ваша работа файл журнала? Если нет, то почему? –

ответ

5

Во-первых, я бы, вероятно, настроить хрон по почте себе любой вывод с помощью MAILTO:

В/и т.д./кронтаб:

MAILTO=username 

Во-вторых, я обычно что-то добавить к моему сценарию, что (почти) не может потерпеть неудачу, как следующее:

#!/bin/sh 
echo "$0 ran on `date +%c`" >> /tmp/crontab_test.log 

# ... rest of program 

Если вы звоните питон скрипт непосредственно из хрон, вы могли бы сделать что-то подобное или создать оболочку ш ell скрипт.

+0

@ Калеб большое спасибо! Я редактировал/etc/crontab и добавил [email protected] Пока нет сообщений электронной почты, я думаю, что сценарий не работает на полпути. – RadiantHex

+0

Убедитесь, что вы запустили 'newaliases', как указал альфредодеза. Я никогда не пытался отправить его ни на что, кроме учетной записи локального пользователя, поэтому я не уверен, что вы можете. Документы говорят, что это «отправлено пользователю, названному так». –

+0

также убедитесь, что он не подбирается спам-фильтром. – cobbal

2

Если Sendmail установлен, вы можете добавить следующие строки в «/ и т.д./псевдонимами»

корня: [email protected]

После выполнения этого обновления псевдонимов выполнения этой команды:

sudo newaliases 

Cron автоматически отправит вам электронное письмо при каждом запуске задания. Не нужно указывать это в файле crontab.

Также убедитесь, что у вас есть test ваши возможности электронной почты (например, убедитесь, что вы можете отправлять электронные письма с сервера) и, наконец, создать тривиальный cronjob и проверить, будет ли вы получать электронное письмо.

Не предполагайте!

1

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

 
# Log cron stuff 
cron.*             /var/log/cron.log 

Это должно регистрировать сообщение /var/log/cron.log при каждом запуске задания.

+0

У меня нет syslog.conf! Я использую Ubuntu 9 ... Я посмотрю, смогу ли я найти что-то спасибо btw! – RadiantHex

+0

Если вы используете Ubuntu 9.10 (Karmic Koala), пакет sysklogd был заменен rsyslog. В соответствии с примечаниями к выпуску конфигурации в файле /etc/syslog.conf будут автоматически преобразованы в /etc/rsyslog.d/50-default. Http: //www.ubuntu.com/getubuntu/releasenotes/910 – jschmier