我尝试使用多种变体,但由于我搬到了另一个托管位置,因此无法正常运行CRON作业。
在我刚刚在下面的图片中调用如此的http链接之前:
文件名/cron/synchronize.php
包含以下代码:
<?php shell_exec('php /var/www/domain.com/artisan domaincom:cron argument1 argument2 --option1');?>
我找不到真正的crontab文件存储在哪里,所以我可以复制真正的代码......
现在,当我进入新托管时,通过终端我移动到/var/spool/cron
,然后输入命令行crontab -e
,我放置了我的代码:
SHELL=/bin/bash
HOME=/
0 8,12,14,16,19,23 * * * php /var/www/domain.com/cron/synchronize.php
那个代码不起作用,任何可以告诉我我做错了什么的人?
答案 0 :(得分:1)
您应该检查您的用户是否有权执行cron作业。当您登录VPS时,您需要使用特定用户登录(除非您使用root访问权限)。
因此,您可以查看/etc/cron.allow,看看您的用户是否列在那里。如果不是,您可以在一行中添加您的用户名。还要检查/etc/cron.deny以查看您的用户名是否已列出,或者是否列出了所有用户名。如果列出了ALL,则表示您肯定需要将用户名添加到/etc/cron.allow
答案 1 :(得分:1)
您当前的cron设置为运行PHP,然后调用另一个PHP脚本。您可以通过在crontab中调用该命令来大大简化:
0 8,12,14,16,19,23 * * * php /var/www/domain.com/artisan domaincom:cron argument1 argument2 --option1
正如其他人在评论中所述,将输出发送到文件进行故障排除可能会有所帮助。这可以通过在命令末尾添加>> ~/output.txt
来将输出存储在主目录中的output.txt
文件中来实现(当然,您可以选择任何其他路径)。