Как мне узнать, выполнялись ли рабочие места? - Crontab - PullRequest
3 голосов
/ 03 марта 2010

Я последовал предложению в этот вопрос

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


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

Ответы [ 3 ]

5 голосов
/ 03 марта 2010

Во-первых, я бы, вероятно, настроил cron для отправки себе любых выходных данных, используя MAILTO:

В / etc / crontab:

MAILTO=username

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

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

# ... rest of program

Если вы вызываете скрипт python непосредственно из cron, вы можете сделать что-то подобное или создать скрипт оболочки-оболочки.

2 голосов
/ 03 марта 2010

Если у вас установлен sendmail, вы можете добавить следующее в '/ etc / aliases'

root: your_name@domain.com

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

sudo newaliases

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

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

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

1 голос
/ 03 марта 2010

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

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

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

...