Как узнать, выполняются ли задания?- Кронтаб
Вопрос
Я последовал предложению в этот вопрос
поскольку я использую Django, я настроил сценарий для хранения даты и времени каждого запуска сценария в базе данных, но в базе данных еще не сохранено ни одной записи.
Есть ли способ выяснить это, кроме как набрать «top» и выполнить поиск?
Решение
Во-первых, я бы, вероятно, настроил cron для отправки себе любого вывода по почте, используя MAILTO
:
В /etc/crontab:
MAILTO=username
Во-вторых, я обычно добавляю в свой сценарий что-то, что (почти) не может потерпеть неудачу, например следующее:
#!/bin/sh
echo "$0 ran on `date +%c`" >> /tmp/crontab_test.log
# ... rest of program
Если вы вызываете скрипт Python непосредственно из cron, вы можете сделать что-то подобное или создать скрипт оболочки-оболочки.
Другие советы
Если у вас установлен sendmail, вы можете добавить следующее в /etc/aliases:
корень:ваше_имя@домен.com
После этого обновите псевдонимы, выполнив эту команду:
sudo newaliases
Cron автоматически отправляет вам электронное письмо каждый раз, когда выполняется задание.Нет необходимости указывать это в файле crontab.
Также убедитесь, что вы тест ваши возможности электронной почты (например.убедитесь, что вы можете отправлять электронные письма с сервера) и, наконец, создайте тривиальное задание cron и проверьте, получаете ли вы электронное письмо.
Не думайте!
Помимо настройки cron для отправки электронной почты, вы можете отправить выходные данные cron в отдельный журнал системного журнала, добавив следующее в свой файл: /etc/syslog.conf
.
# Log cron stuff cron.* /var/log/cron.log
Это должно регистрировать сообщение в /var/log/cron.log каждый раз при запуске задания.