2011-12-08 97 views
1

我想通過我的網站cpanel做一個cron任務。我已經和支持服務商談過了,他們給了我這個命令來執行我的網站上的一個php文件。Cron作業幫助

/usr/local/bin/php -q /home/mymcstatus/domains/mymcstatus.net/public_html/redesign/scripts/update.php 

雖然這似乎並不奏效,但我還使用*/1將分鐘間隔設置爲每分鐘。

我使用的文件update.php的內部代碼如下:

<?php 
ini_set('display_errors', 1); 
ini_set('log_errors', 1); 
ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); 
error_reporting(E_ALL); 

require('minequery.class.php'); 
include('../config/config.php'); 

    $date = date("D-M-Y"); 

    $file = fopen("UPDATE_LOG($date).txt", 'w'); 

    $query = mysql_query("SELECT * FROM servers") or die(mysql_error()); 

    if($query) { 

    while($row = mysql_fetch_array($query)) { 

     $ip = $row['ip']; 
     $port = $row['port']; 
     $name = $row['name']; 

     $string = "[UPDATE LOG]: $date - Updated Server $name \n"; 


     fwrite($file, $string); 

     print("[UPDATE LOG] Updated Server $name </br>"); 



    } 

    mail("[email protected]","UPDATED","Server has updated","From: Mymcstatus");  

    } else { 

     print("Cant query"); 
    } 



?> 

當我去通過Web瀏覽器代碼工作手動update.php,但似乎沒有用的cronjob發生。我錯過了什麼或做錯了什麼?

回答

0

有幾件事情可以在這裏進行。首先是檢查update.php文件的權限,並確保它是可執行的。 cron可能會作爲不具有執行update.php權限的其他用戶執行。你可以嘗試的第二件事是將它作爲update.php的第一行,在它之前沒有空格。

#!/usr/local/bin/php 
+0

好吧補充說,雖然沒有改變。 –

0

通常cron作業不會從你的PHP住在哪所以它可能是它正在運行,但輸出文件正在別處創建相同的目錄中運行。嘗試改變輸出文件路徑是完整的文件路徑,即:

$file = fopen("/home/mymcstatus/domains/mymcstatus.net/public_html/redesign/scripts/UPDATE_LOG($date).txt", 'w'); 
+0

好吧,我現在手動去那裏,它給了我一個錯誤。但它似乎也沒有讓Cronjobs仍然工作。 –

+0

什麼是錯誤? – TheOx

+0

警告:fwrite()期望參數1是資源,28行中的/home/mymcstat/domains/mymcstatus.net/public_html/redesign/scripts/update.php中給出的布爾值 –

0

隨着我設法修復文件路徑的上述評論的幫助,但它也來到了該命令。我在這裏輸入了錯誤的用戶路徑,這是可行的命令。

/usr/local/bin/php -q /home/mymcstat/domains/mymcstatus.net/public_html/redesign/scripts/update.php 

感謝您的幫助

0

它總是一個好主意,cd你的腳本的路徑。這樣,您不需要更改includerequire文件的名稱以及任何其他參與文件操作的文件名。您的cronjob命令可能如下所示:

cd /home/mymcstatus/domains/mymcstatus.net/public_html/redesign/scripts/;在/ usr/local/bin目錄/ PHP -q /home/mymcstatus/domains/mymcstatus.net/public_html/redesign/scripts/update.php

您不需要提供任何絕對的文件路徑這種方式。