Linux
Cron 作業未執行
我可以從 CLI 執行此命令,但在 Fedora 盒子上沒有問題,但不能從 Cron 執行:
/usr/bin/php /var/www/support_web/api/cron.php
這是 cron 輸出:
命令 /usr/bin/php /var/www/support_web/api/cron.php 的輸出 ..
77
文件具有執行權限。
crontab 日誌:
Jun 11 11:46:20 www crontab[23453]: (root) BEGIN EDIT (root) Jun 11 11:46:21 www crontab[23453]: (root) REPLACE (root) Jun 11 11:46:21 www crontab[23453]: (root) END EDIT (root) Jun 11 11:47:01 www crond[2479]: (*system*) WRONG FILE OWNER (/etc/crontab) Jun 11 11:47:01 www crond[2479]: (*system*) WRONG FILE OWNER (/etc/cron.d/smolt) Jun 11 11:47:01 www crond[2479]: (root) RELOAD (cron/root)
您是否從 CLI 和同一使用者的 cron 執行它?如果您以普通使用者身份從 CLI 執行它,並以 root 身份從 cron 執行,root 可能會失去您的 cron.php 需要的一些環境變數。
您可以嘗試從 root cron 執行,例如:
su - userToRunAs -c "/usr/bin/php /var/www/support_web/api/cron.php"
cron 文件必須有一個 root/root 使用者/組(/etc/cron* 和 /etc/cron.{daily,hourly,etc}/* 必須由 root 擁有,否則其中的腳本不會觸發。
我不知道 /var/spool/cron/$username 下的個人 crontab。不過,我的個人經驗表明它是 root/“使用者組”
還有一些權限要求,但我不知道那些是什麼。不過,我確實知道 755 有效。