[英]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.