2009-11-29 33 views
2

我想有一個web界面來控制何時調用一個PHP腳本。在這個界面中,我希望能夠設置腳本將被調用的特定時間或範圍。這些信息將存儲在數據庫中。當我點擊保存時,我想讓它讀取數據庫中的所有預定時間,然後將其格式化並將其寫入crontab作爲cron作業。有沒有辦法讓PHP修改一個crontab文件?PHP生成一個crontab

回答

8

我會去創建一個每分鐘運行一次的「cron_runner.php」腳本,讀取cron數據並相應地運行它們。感覺就像重新發明輪子,但至少你沒有文件權限問題。

+0

另一種可能是有多個「cron_runner」文件;一個執行每分鐘15分鐘,一個每小時執行一次,這樣你就不需要更多的邏輯來決定運行哪個腳本,而且你的一分鐘cron文件承擔的風險更小執行時間超過60秒。不過,只有在運行很多腳本時纔有用。另外,它限制你選擇一個可用的定時器,而不是設置你自己的定時器。 – Duroth 2009-11-29 15:18:25

2

它應該是可能的,但您需要PHP擁有訪問用戶的crontab或從命令行執行「crontab」的必要權限。在共享主機環境中,情況大多不是這樣。

1

實際上,您可以像操作文本文件一樣簡單地操作cron作業。你必須小心,不要制動任何東西。

cron守護程序保存cronjobs使用以下結構中的每個用戶:

/var 
    /spool 
     /cron 
      /crontabs 
       /root 
       /user1 
       /user2 
       .. 
       /user5 

利用這些信息,您可以修改相應的,而您想設置新的cron用戶的文本文件。

請注意,修改系統文件可能很危險,您應該非常小心。您的應用程序還需要一些額外的權限來修改這些文件。