繁体   English   中英

在没有CPanel的情况下如何正确执行CRON作业?

[英]How to properly execute a CRON job without CPanel?

我尝试使用多种变体,但自从移至另一台主机以来,无法正常运行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

而且该代码无法正常工作,任何人都可以告诉我我做错了什么?

您应该检查您的用户有权执行cron作业。 登录到VPS时,您使用特定用户登录(除非您使用root用户访问权限登录)。

因此,您可以在/etc/cron.allow中检查并查看您的用户是否在此处列出。 如果不是,您可以在一行中添加用户名。 还要检查/etc/cron.deny以查看是否列出了您的用户名,或者是否列出了ALL。 如果在那里列出了ALL,则意味着您绝对需要将用户名添加到/etc/cron.allow中。

您当前的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的文件中来完成(您当然可以选择其他路径)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM