2014-11-05 166 views
0

我在一臺服務器(VPS WHM)上通過cronjob運行此腳本,並將所有內容複製到具有相同類型VPS和WHM的另一臺主機上。此腳本未在新服務器上運行,或者電子郵件未被髮送。我試圖與提供商進行故障排除,他們不知所措。我的問題是什麼設置可能會導致這樣的問題?我看起來似乎已經與服務器上的每一個設置搞混了,而且幾乎沒有結果。任何有助於追蹤這些信息的信息,請告訴我,我將編輯該問題。如果你有一個猜測會有幫助,我只是在尋找新的眼睛來解決這個問題。在一臺服務器上通過Cronjob運行但未在類似服務器上運行的PHP腳本

更多信息:

Apache的版本2.2.27 PHP版本31年4月5日 MySQL版本40年5月5日-CLL

在日誌

的cron是沒有錯誤:10 4 * * PHP /home/xxxxx/public_html/alert.php

我也曾嘗試:10 4 * * * /home/xxxxx/public_html/alert.php

#!/usr/bin/php 
<?php 

$db_host = "localhost"; 
$db_username = "xxxx"; 
$db_pass = "xxxx"; 
$db_name = "xxxxxx"; 
mysql_connect("$db_host","$db_username","$db_pass") or die(mysql_error()); 
mysql_select_db("$db_name") or die ("no database"); 

$headers = "Bcc: [email protected]"; 

$tierasql = "SELECT date,phonenumber,email, SUM(dataplan) AS currentplantiera, SUM(datamb) AS value_sumtiera FROM maindata2 WHERE dataplan BETWEEN 2 and 50 and dataplan != '20' GROUP BY email"; 


$resulttiera = mysql_query($tierasql); 
while ($rowtiera = mysql_fetch_assoc($resulttiera)){ 
if ($resulttiera){ 
    $rowtiera = mysql_fetch_assoc($resulttiera); 
    $plantiera = $rowtiera['currentplantiera'] ; 
    $date = $rowtiera['date'] ; 
    $inventorytiera = ROUND ($rowtiera["value_sumtiera"],2) ; 
    $recipienttiera = $rowtiera['email']; 
    if ($inventorytiera > (.75 * $plantiera)){ 
    $msgtiera = "Xxxxxxxxx Data Usage Alert: 

This alert is being provided to you because your lines in Tier A have exceeded 75% of your Xxxxxxxxx Service Plan. 

As of $date, your current data usage is $inventorytiera MB and you have a data allotment of $plantiera MB of shared data. 

Please note that you may experience overage charges if your total data usage exceeds the net total usage of all data in the same sharing tier until your usage is reset on your next billing cycle. 

One upward rate plan adjustment is allowed per billing cycle, please visit http://xxxxxxxxx.com/rate-plan-change for more details. 

Please refer to Xxxxxxxxx.com/data to review your data usage."; 
    mail($recipienttiera,"[email protected]", "Xxxxxxxxx Data Usage Alert", $msgtiera, $headers); 
    } 
} 
else { 
    $msg = "An error occurred: " . mysql_error(); 
    mail($recipienttiera,"[email protected]", "Alert from Xxxxxxxxx error", $msgtiera, $headers); 

} 
} 

$tierbsql = "SELECT date,phonenumber,email, SUM(dataplan) AS currentplantierb, SUM(datamb) AS value_sumtierb FROM maindata2 WHERE dataplan BETWEEN 500 and 8000 GROUP BY email"; 


$resulttierb = mysql_query($tierbsql); 
while ($rowtierb = mysql_fetch_assoc($resulttierb)){ 
if ($resulttierb){ 
    $rowtierb = mysql_fetch_assoc($resulttierb); 
    $plantierb = $rowtierb['currentplantierb'] ; 
    $date = $rowtierb['date'] ; 
    $inventorytierb = ROUND ($rowtierb["value_sumtierb"],2) ; 
    $recipienttierb = $rowtierb['email']; 
    if ($inventorytierb > (.75 * $plantierb)){ 
    $msgtierb = "Xxxxxxxxx Data Usage Alert: 

This alert is being provided to you because your lines in Tier B have exceeded 75% of your Xxxxxxxxx Service Plan. 

As of $date, your current data usage is $inventorytierb MB and you have a data allotment of $plantierb MB of shared data. 

Please note that you may experience overage charges if your total data usage exceeds the net total usage of all data in the same sharing tier until your usage is reset on your next billing cycle. 

One upward rate plan adjustment is allowed per billing cycle, please visit http://xxxxxxxxx.com/rate-plan-change for more details. 

Please refer to Xxxxxxxxx.com/data to review your data usage."; 
    mail($recipienttierb,"[email protected]", "Xxxxxxxxx Data Usage Alert", $msgtierb, $headers); 
    } 
} 
else { 
    $msg = "An error occurred: " . mysql_error(); 
    mail($recipienttierb,"[email protected]", "Alert from Xxxxxxxxx error", $msg, $headers); 

} 
} 

$tiercsql = "SELECT date,phonenumber,email, SUM(dataplan) AS currentplantierc, SUM(datamb) AS value_sumtierc FROM maindata2 WHERE dataplan BETWEEN 10000 and 100000 GROUP BY email"; 


$resulttierc = mysql_query($tiercsql); 
while ($rowtierc = mysql_fetch_assoc($resulttierc)){ 
if ($resulttierc){ 
    $rowtierc = mysql_fetch_assoc($resulttierc); 
    $plantierc = $rowtierc['currentplantierc'] ; 
    $date = $rowtierc['date'] ; 
    $inventorytierc = ROUND ($rowtierc["value_sumtierc"],2) ; 
    $recipienttierc = $rowtierc['email']; 
    if ($inventorytierc > (.75 * $plantierc)){ 
    $msgtierc = "Xxxxxxxxx Data Usage Alert: 

This alert is being provided to you because your lines in Tier B have exceeded 75% of your Xxxxxxxxx Service Plan. 

As of $date, your current data usage is $inventorytierc MB and you have a data allotment of $plantierc MB of shared data. 

Please note that you may experience overage charges if your total data usage exceeds the net total usage of all data in the same sharing tier until your usage is reset on your next billing cycle. 

One upward rate plan adjustment is allowed per billing cycle, please visit http://xxxxxxxxx.com/rate-plan-change for more details. 

Please refer to Xxxxxxxxx.com/data to review your data usage."; 
    mail($recipienttierc,"[email protected]", "Xxxxxxxxx Data Usage Alert", $msgtierc, $headers); 
    } 
} 
else { 
    $msg = "An error occurred: " . mysql_error(); 
    mail($recipienttierc,"[email protected]", "Alert from Xxxxxxxxx error", $msg, $headers); 

} 
} 


$sql = "SELECT date,phonenumber,email, dataplan AS currentplan, SUM(datamb) AS value_sum FROM maindata2 GROUP BY phonenumber, dataplan"; 


$result = mysql_query($sql); 
if ($result) { 
    while ($row = mysql_fetch_assoc($result)){ 
     $plan = $row['currentplan'] ; 
      $date = $row['date'] ; 
      $inventory = ROUND ($row["value_sum"],2) ; 
      $recipient = $row['email']; 
      $line = $row['phonenumber']; 
      if ($inventory > (.75 * $plan)) { 
    $msg = "Xxxxxxxxx Single Line Usage Alert: 

This alert is being provided to you because your line $line has exceeded 75% of it's Xxxxxxxxx Service Plan. 

As of $date, your current data usage is $inventory MB of your $plan MB data plan. 

Please note that you may experience overage charges if your total data usage exceeds the net total usage of all data in the same sharing tier until your usage is reset on your next billing cycle. 

One upward rate plan adjustment is allowed per billing cycle, please visit http://xxxxxxxxx.com/rate-plan-change for more details. 

Please refer to Xxxxxxxxx.com/data to review your data usage."; 
    mail($recipient,"[email protected]", "Alert from Xxxxxxxxx", $msg, $headers); 
    } 
} 
} 
else { 
    $msg = "An error occurred: " . mysql_error(); 
    mail($recipient,"[email protected]", "Alert from Xxxxxxxxx error", $msg, $headers); 

} 




     ?> 
+0

安裝哪個版本的php? – baao 2014-11-05 13:56:55

+0

Apache版本\t 2.2.27 PHP版本\t 5.4.31 MySQL版本\t 5.5.40-cll – user3688183 2014-11-05 14:02:33

回答

0

你是否檢查過新服務器上的php-cli錯誤日誌?運行時可能會出錯。如果日誌中沒有錯誤,那麼它可能根本不能運行。嘗試使用php命令手動觸發作業,看看它是否成功,然後將其添加到cron並檢查錯誤日誌。

相關問題