2012-04-26 22 views
1

我需要運行一個php script使用crone job利用一些網站的CutyCapt產生snapshots,我從數據庫網站addressess,然後生成截圖後刪除此記錄。 我用*/5 * * * * /usr/bin/php -f /path/generate.php 它沒有爲crone job工作,但如果我使用browser訪問相同的文件,它工作正常,如果運行此腳本使用命令phpcommand line它也工作正常。 然後我剛剛創建了另一個文件並使用file_get_contents訪問了url;將此文件添加到crone job它在一段時間內工作正常,但現在這種方法也無法正常工作。我不知道發生了什麼事。我沒有更改任何這些文件。 我也試過wget命令來訪問該網址,但未能得到所需的輸出。 我的crontab現在看起來是這樣 */5 * * * * wget "http://www.mysite.com/generate.php" -O /dev/nullcron作業是不是給需要的結果,而是通過瀏覽器訪問同一文件執行

奇怪的是,科龍作業執行罰款從數據庫獲取數據並刪除記錄,以及但是不更新圖像。

是否有任何權限或類似的問題,以防止它使用crone作業生成圖像,但不能在使用瀏覽器訪問時發生。

請幫我卡住了。

回答

0

我不知道你的腳本在內部做了什麼,但請記住用戶的cron作業不會繼承用戶環境。因此,如果您的php腳本正在運行任何shell命令,您可能會遇到PATH問題。

如果您從腳本運行shell命令,請嘗試從php腳本中設置PATH環境變量,看看是否有幫助。

0

在這個頁面上是否有任何用戶信用,比如基本認證? 如果是的話,你必須定義在wget的請求中的用戶名和密碼一樣

wget --http-user=user --http-password=password "http://url" ? 

,並通過運行PHP命令行 侑腳本嘗試另一種解決方案,使你的crontab可能看起來像

*/5 * * * * /usr/bin/php -f /path/to/generate.php 

試試這個解決方案,將工作,這是比打服務器上的數據

執行後臺操作更好,我希望這有助於

+1

是的,'wget'解決方案應該可以工作。並非所有腳本都在CLI模式下正常運行。 – Nadh 2012-04-26 17:33:30

+0

我同意你的看法,但從設計的角度來看,我建議從命令行運行! :) – 2012-04-26 17:38:16

+0

@Muhannad感謝您的回答。首先,不需要認證來訪問這個文件。其次,我已經嘗試了你建議的第二個解決方案,我也提到了問題。 Cron作業執行但不生成屏幕截圖,與數據庫更新相關的其他工作很好。 – Arif 2012-04-26 17:58:51

相關問題