簡體   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