2011-01-22 140 views

回答

8

大多數Linux系統提供了可以設置工作的幾個目錄:

/etc/cron.d/ 
/etc/cron.daily/ 
/etc/cron.weekly/ 
/etc/cron.monthly/ 
... 

這裏的想法是在這些目錄中創建文件。您需要爲這些(或其中一個)目錄設置適當的權限/所有權,以便啓動PHP腳本的用戶可以寫入(Apache用戶,如果它是Web腳本的話,或者使用CLI的任何CLI用戶)。

最簡單的是創建一個空文件,爲其分配適當的權限/所有權,並讓PHP腳本附加/修改它。

每例如:

$ touch /etc/cron.d/php-crons 
$ chown www-data /etc/cron.d/php-crons 

然後在PHP中:

$fp = fopen('/etc/cron.d/php-crons', 'a'); 
fwrite($fp, '* 23 * * * echo foobar'.PHP_EOL); 
fclose($fp); 
-2

上有使用PHP編輯的crontab自2004年以來一直在地方禁運你可能不會被允許如果您居住在美國以外,請與當地政府機構覈實。

但嚴重的是,您可以隨時通過系統調用調用「crontab - 」。如果您需要爲網絡服務器以外的用戶執行此操作,則需要一些ssh或sudo魔法。但這一切似乎都是一個糟糕的主意。

2

如果你要在動態增加大量的就業機會的crontab形成你的應用程序獲得,更好的辦法做到這一點手動添加一個cron作業:

php -f /path/to/your/runner.php 

商店你的工作,你會在表中手動添加cron(或每個任務類型的一個表),然後讓你的跑步者每分鐘/每小時/每天/每次執行所有表並執行當時應執行的所有表。

0

查找crontab文件是不容易的共享主機,而且也沒有把握,雖然它已經運行cron將會再次讀取該文件。 其實我最好的方法是使用corntab命令。

如果您無權訪問shell,則可以使用例如PHPShell。嘗試這個。

  • Uplode通過FTP一個txt文件在crontab中fomat工作例如

    5 * * * * /some/file/to/run.sh > /dev/null

(記得把換行符在該行的末尾)

  • 登錄到您的PHPShell並運行

    crontab uploded_filename.txt

  • 記住使用

    crontab -l

乾杯

更改文件權限

chmod 775 uploded_filename.txt

  • 檢查cron作業