2011-03-30 60 views
1

我試圖設置一個cronjob,每20分鐘運行一次。 文件路徑是/srv/www/mysite.co.uk/public_html/PP/Make_Xml.php如何在Debian下創建一個php cronjob

,但我需要這樣基本上轉移給它的變種來的cron: /srv/www/mysite.co .UK /的public_html/PP/Make_Xml.php DB =倫敦

我試圖用 「crontab -e命令」,並將其設置甚至每分鐘:

* * * * * /srv/www/mysite.co.uk/public_html/PP/Make_Xml.php?db=LONDON 

它,它保存到/ tmp/crontab.something/crontab

而且它似乎沒有工作。 我是Linux新手請幫忙。

+0

一開始你需要添加php,無論是php <路徑到文件>或完整的php路徑取決於配置 – 2011-03-30 20:40:21

+0

添加MAILTO =「」在你的地址的crontab文件的頂部,它會通過電子郵件發送你的if有一個問題,偉大的測試 – 2011-03-30 20:42:26

回答

4

首先,調用命令行PHP腳本的時候,你會不會它傳遞參數,你在這裏做的方式。

通常您會通過那些像這樣:

/srv/www/mysite.co.uk/public_html/PP/Make_Xml.php db=LONDON 

而且,從你的PHP腳本,你不會在數據進入$_GET,但進入$_SERVER['argv']


例如,如果我創建一個包含以下內容的腳本:

<?php 
var_dump($_SERVER['argv']); 

調用這樣說:

php temp.php db=LONDON 

會讓我下面的輸出:

array(2) { 
    [0]=> 
    string(8) "temp.php" 
    [1]=> 
    string(9) "db=LONDON" 
} 


然後,請注意你應該呼叫php可執行程序,從你的crontab,而不是直接PHP腳本 - 除非你讓它可執行。

這可能意味着使用這樣的事:

* * * * * /usr/bin/php /srv/www/mysite.co.uk/public_html/PP/Make_Xml.php db=LONDON 

注意:您可能需要的路徑適應php

+0

帕斯卡非常明確,謝謝你 – Tom 2011-03-30 20:48:49

0

請參閱Pascals響應re:變量。

對於要每隔20分鐘:

*/20 * * * * /usr/bin/php /srv/www/mysite.co.uk/public_html/PP/Make_Xml.php db=LONDON 

它說運行腳本每當分鐘整除20。

0

有兩個額外的選項,你可以考慮。

對於您打算從命令行使用的PHP腳本,可以使用PEAR Console_Getopt命令行選項解析器,該解析器提供了類似的功能來爲其他語言的getopt庫。

如果您的PHP腳本需要在Web上下文中運行,您可以使用cron作業來請求該URL。 A stackoverflow question and answer涵蓋了這一點。