我怎么知道工作是否已经/正在执行? - Crontab

时间:2010-03-03 00:06:27

标签: python linux django crontab

我已按照this question

中的建议行事

当我使用Django时,我已将脚本设置为在db中存储每次运行脚本的日期和时间,但数据库中尚未存储任何条目。


有没有办法弄明白,除了输入“top”并搜索?

3 个答案:

答案 0 :(得分:5)

首先,我可能会让cron使用MAILTO

自行邮寄任何输出

在/ etc / crontab中:

MAILTO=username

其次,我通常在我的脚本中添加一些(几乎)不可能失败的东西,如下所示:

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

# ... rest of program

如果你直接从cron调用python脚本,你可以做类似的事情或创建一个包装shell脚本。

答案 1 :(得分:2)

如果您安装了sendmail,则可以将以下内容添加到“/ etc / aliases”

root:your_name@domain.com

执行此操作后,请更新运行此命令的别名:

sudo newaliases

每次作业运行时,Cron都会自动向您发送电子邮件。无需在crontab文件中指定。

此外,请确保您测试您的电子邮件功能(例如,确保您能够从服务器发送电子邮件),最后,创建一个简单的cronjob并测试您是否收到电子邮件。

不要假设!

答案 2 :(得分:1)

除了设置cron发送电子邮件之外,您还可以通过将以下内容添加到/etc/syslog.conf来将cron的输出发送到单独的syslog日志工具。

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

每次运行作业时,都应该将消息记录到/var/log/cron.log。