Crontab:未正确执行

Crontab:未正确执行

(操作系统为 FreeBSD 8.1)

昨天我以 root 身份向 crontab 添加了两行:

0 7 * * * curl --silent http://username:[email protected]/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1
0 8 * * * curl --silent http://username:[email protected]/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1

以 root 身份从 shell 直接执行命令就可以了。它只会执行一些操作,并发送一些电子邮件。第二次运行不应发送任何电子邮件,这是由脚本处理的。因此,第二行仅供我测试,确保第二次运行不会发送相同的电子邮件。

今天早上 7 点和 8 点,我一直在等电子邮件,但是没有。

cron 日志告诉我以下内容

Feb  8 07:00:00 webserver /usr/sbin/cron[50878]: (root) CMD (   /usr/local/bin/bsdsar_gather)
Feb  8 07:00:00 webserver /usr/sbin/cron[50881]: (root) CMD (newsyslog)
Feb  8 07:00:00 webserver /usr/sbin/cron[50882]: (root) CMD (/usr/libexec/atrun)
Feb  8 07:00:00 webserver /usr/sbin/cron[50883]: (operator) CMD (/usr/libexec/save-entropy)
Feb  8 07:00:00 webserver /usr/sbin/cron[50886]: (root) CMD (curl --silent http://username:[email protected]/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1)

[...]

Feb  8 08:00:00 webserver /usr/sbin/cron[51147]: (root) CMD (   /usr/local/bin/bsdsar_gather)
Feb  8 08:00:00 webserver /usr/sbin/cron[51149]: (root) CMD (newsyslog)
Feb  8 08:00:00 webserver /usr/sbin/cron[51150]: (operator) CMD (/usr/libexec/save-entropy)
Feb  8 08:00:00 webserver /usr/sbin/cron[51151]: (root) CMD (/usr/libexec/atrun)
Feb  8 08:00:00 webserver /usr/sbin/cron[51152]: (root) CMD (curl --silent http://username:[email protected]/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1)

/home/www/dev_mydomain_tld/logs/cron_process.log没有显示任何变化,日期也没有变化。从 shell 运行更新就可以了。

答案1

curl 是否在 cron 设置的路径中?您应该在脚本中设置 PATH,或者使用 curl 的完整路径(即 /usr/local/bin/curl 或类似路径)。

看一下crontab(5)有关环境变量的详细信息。

答案2

root 有权访问的主系统 crontab(/etc/crontab)应该将用户名作为第六列。(普通用户的 crontab 文件则没有)

相关内容