【发布时间】:2012-10-27 23:14:03
【问题描述】:
我想实现两个具有不同执行时间的 cronjobs。一项 cron 作业用于发送电子邮件,另一项 cron 作业用于验证我的应用程序订阅。
我写一个crontab文件,写两个cronjob如下:
2 * * * * path to mailCronjob mail.php
20 * * * * path to check my application's subscriptions sub.php
问题是第一个 cronjob 工作正常。邮件可以正常发送,但第二个 cronjob 不管用。我尝试手动运行第二个作业,它也可以正常工作。
我正在使用命令将 cronjob 设置为:
crontab crontab_file
当我发出命令时crontab -l
它还在命令行中显示了这两个 cronjob。
我想问一下,我是否在这里遗漏了什么,或者我应该怎么做才能运行这些 cronjobs。
【问题讨论】:
-
当您手动运行它时,您是否使用与 cronjob 相同的用户?您还可以通过将输出传递到日志文件来进行调试:
0 * * * * php script.php > /tmp/errors.log -
您是否在 crontab 文件中使用绝对路径?
-
当我现在手动运行脚本时,我是从浏览器运行的。所以,没有用户。 :(
-
@spaceman817 :是的,我正在使用脚本的绝对路径
-
您需要像从 crontab 运行脚本一样在控制台上运行脚本来调试权限/路径问题:
sudo -u <cron user> <exactly what is in the cronjob>