2012年6月29日星期五

Cron任务没有执行

Web方式显示服务器历史负载的图中,有几天的内容是空的。昨天我从头看代码。回家后想想既然平常能正常显示,那么程序应该不会有问题,应该直接从问题入手,先查询数据库。

今天把程序在IPython里面import了调试,发现那几天的负载数据库表不存在。往这个数据库写数据的程序是个cron任务,在syslog里面没有找到任务执行记录,在root的邮件里面也没有看到任务执行出错的邮件。然后在cron(8)手册里面,发现/etc/cron.d里面的任务名字不能带点,而入库的任务名字叫checknagios.cron

另外,某人同时用 /usr/share/doc/cron/examples/cron-tasks-review.sh检查,出现提示:
WARN: The file /etc/cron.d/checknagios.cron will not be executed by cron: Does not conform to the run-parts convention
更加确认了这一点。

貌似复杂的问题,竟然源于一个点。把任务文件名中的"."去掉就解决了。