2012-02-26 13 views
7

cronのラインを見てのような:のcrontabのPHPファイルと出力ログに記録するファイルの結果

*/1 * * * * /usr/bin/php /path/to/CRON.php > /path/to/log/CRON_LOG.txt 2> /dev/null 

CRON.php

<?php 
require_once 'config.php'; 
define('CRON', dirname(dirname(__FILE__))); 
$parts = explode("/",__FILE__); 
$ThisFile = $parts[count($parts) - 1]; 
chdir(substr(__FILE__,0,(strlen(__FILE__) - strlen($ThisFile)))); 
unset($parts); 
unset($ThisFile); 

$CRON_OUTPUT = "STARTING CRON @ ".date("m-d-Y H:i:s")."\r\n"; 
$CRON_OUTPUT .= CleanLog() . "\r\n"; 
$CRON_OUTPUT .= "\r\n"; 

echo $CRON_OUTPUT; 
$fh = fopen(''.CRON.'/log/CRON_LOG.txt', 'a'); 
fwrite($fh, $CRON_OUTPUT); 
fclose($fh); 
die(); 
?> 

CleanLog機能:ファイルで

global $db; 
    $resp = ''; 
    $db->query('SQL'); 
    $resp = 'Deleted '.$db->rows_affected.' entries from table'; 
    return $resp; 

のみの2行私が2回実行することができるように時間を表示し、機能する:

CRON_LOG.txt

STARTING CRON @ 02-26-2012 21:26:01 
Deleted 0 entries from table 

STARTING CRON @ 02-26-2012 21:26:01 
Deleted 0 entries from table 

ファイルのみ日付/時刻変更し、より多くの何もないでは(更新されていませんそれは何行のみとファイルを作成する理由、それで間違っている、それはより多くの行を追加しても、サイズを提出すべきです育つはずですか?)

答えて

16

>ではなく、ファイルを追加するリダイレクトを>>にする必要があります。>は、スクリプトが実行されるたびにログを上書きします。

*/1 * * * * /usr/bin/php /path/to/CRON.php >> /path/to/log/CRON_LOG.txt 2> /dev/null 
##---------------------------------------^^^^^^ 

は本当にcronジョブが既に出力リダイレクトを処理しているため、スクリプト自体の内部fopen()/fwrite()を行うする必要はありません。

+0

オハイオ州、アドバイスをいただきありがとうございます。 – ZeroSuf3r

関連する問題