我如何知道工作是否已经完成? - crontab的

问题描述:

我已按照this question我如何知道工作是否已经完成? - crontab的

的建议,因为我使用Django,我已经设置了脚本存储日期和数据库脚本的每次运行的时间,但没有进入是否已经被存储在数据库。


有没有办法弄清楚,不是键入“顶”和搜索通过其他?

+0

你的工作写入日志文件?如果不是为什么不呢? – 2010-03-03 11:37:30

首先,我可能会配置cron的使用MAILTO邮寄自己的任何输出:

在/ etc/crontab中:

MAILTO=username 

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

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

# ... rest of program 

如果您是直接从cron调用一个python脚本,你可以做类似的东西,或者创建一个包装SH ell脚本。

+0

@Kaleb非常感谢你!我编辑了/ etc/crontab,并添加了MAILTO = [email protected]。没有电子邮件,我认为剧本中途失败。 – RadiantHex 2010-03-03 00:59:02

+0

确保你运行'newaliases'作为alfredodeza指出。我从来没有试过将它发送给本地用户帐户,所以我不积极。文档称它是“发送给用户名称”。 – 2010-03-03 04:22:38

+0

此外,还要确保它没有被拾起的垃圾邮件过滤器 – cobbal 2010-03-03 05:39:05

如果你已经安装的sendmail,你可以添加以下到/ etc/aliases中“

根:[email protected]

之后你这样做,更新别名运行此命令:

sudo newaliases 

Cron会在每次作业运行时自动发送电子邮件给您。不需要在crontab文件中指定。

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

不要想当然!

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

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

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

+0

我没有syslog.conf!我正在使用Ubuntu 9 ...我会看看我能否找到感谢btw的东西! – RadiantHex 2010-03-05 02:47:10

+0

如果您正在使用的Ubuntu 9.10(Karmic中考拉),在后面的Sysklogd软件包已被替换rsyslog现在。根据发行说明,/etc/syslog.conf中的配置将自动转换为/etc/rsyslog.d/50-default。 HTTP://www.ubuntu。com/getubuntu/releasenotes/910 – jschmier 2010-03-05 04:32:06