Crontab:未正确执行

Phl*_*lip 3 freebsd cron

(操作系统是 FreeBSD 8.1)

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

0 7 * * * curl --silent http://username:pass@dev.mydomain.tld/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1
0 8 * * * curl --silent http://username:pass@dev.mydomain.tld/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1
Run Code Online (Sandbox Code Playgroud)

以 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:pass@dev.mydomain.tld/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:pass@dev.mydomain.tld/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1)
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*oit 6

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

有关环境变量的详细信息,请查看crontab(5)