2012-11-23 53 views
1

我有一個cron集來運行一個php文件,但由於某種原因,它不工作的時候到了。我可以在終端中手動調用相同的文件,它工作正常。沒有錯誤信息。cronjob沒有爲特定文件執行

注意:還有很多作業爲不同的文件夾&文件設置,它們都可以正常工作。權限也相同。

感謝

科雷

30 2 * * 1,2,3,4,5 php /var/www/html/cronjob/update-db.php 

PERMISSIONS

drwxr-xr-x 2 root root  4096 Nov 20 10:17 cronjob 

-rwxr-xr-x 1 root root 5808 Nov 21 17:21 update-db.php 
  • conn.php被用於許多其他cronjobs和工作正常。
  • 此代碼工作正常,當我打電話在終端運行它。
  • 除此之外,其他任何cronjob都可以正常工作。

CODE

require_once "/var/www/html/dbfolder/conn.php"; 


function write_log($message) 
{ 
    $filename = 'update-sis-assessment-column-log.txt'; 

    if (file_exists($filename)) 
    { 
     $handle = fopen($filename, 'a'); 
    } 
    else 
    { 
     $handle = fopen($filename, 'w'); 
     //chmod($filename, 0644); 
    } 

    fwrite($handle, $message . "\r\n\r\n"); 
    fclose($handle); 

    exit; 
} 

if (connectDB() === true) 
{ 
    $query = "SELECT......."; 
    $rcset = mysql_query($query); 

    $terms = null; 

    if (@mysql_num_rows($rcset) > 0) 
    { 
     while ($records = mysql_fetch_array($rcset)) 
     { 
      if (ctype_digit($records['Term'])) 
      { 
       $terms .= "'" . substr($records['Term'], 0, 4) . "-01', "; 
      } 
     } 

     $terms = substr($terms, 0, -2); 
    } 

    write_log('DONE : ' . $terms); 
} 
+0

你有沒有檢查cronlog? – GBD

+0

GBD cronlog位於哪裏?我試圖查看/home/user/cronlog.log但不存在 – Erik

回答

2

確保PHP可執行文件在您的路徑或將完整路徑在cron作業到PHP像

30 2 * * 1,2,3,4,5 /usr/bin/php /var/www/html/cronjob/update-db.php 

,如果你不知道在哪裏php可以運行你可以運行

which php 

拿到路徑

+0

我有大約20個作業,並且所有工作正常,沒有'/ usr/bin/php'部分也包含文件具有'0755'權限。 – BentCoder

+0

然後我建議你按照san4o的建議做,並檢查錯誤是在日誌文件中,另外一件事你應該記住的是,如果你在你的cron中包含其他php文件,你需要確保它的路徑是正確的以及 –

+0

剛發現,相同的文件在不同的文件夾中工作。所有文件夾和文件的權限相同。儘管如此,仍然不能在原始文件夾中工作沒有錯誤。 – BentCoder

1

還建議將輸出重定向到日誌文件,並使用更短的運行時間間隔調試

*/5 * * * *的/ usr/bin中/ PHP的/ var/www/html等/的cronjob /update-db.php >> /path_to_log.log

+0

創建空白日誌文件。 – BentCoder

+0

添加一些調試回聲「一些...」;在PHP腳本。 你有這個crontab中的另一份工作嗎?他們工作的劑量? – san4o