Linux

Cron 作業未執行

  • June 11, 2009

我可以從 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 有效。

引用自:https://serverfault.com/questions/24116