#!/usr/bin/perl

# Copyright (C) 2001-2008 NEC Corporation
# All Rights Reserved.

#2008/09 higashi
#呼び出す関数、変数がないので「require "/opt/nec/wbmc/lib/wbmc.pl"」
#を削除

#2008/11 higashi
#ログ出力のため読み込み
require "/opt/nec/wbmc/bin/time_conv.pl";

#2008/11 higashi
#accesslog_transfer.logへのパス
$accesslog_transfer_log_path = "/var/log/accesslog_transfer/accesslog_transfer.log";

#2008/09 higashi
#accesslog_transfer.logをローテートするサイズ
$accesslog_transfer_log_rotate_size=5242880;

#2008/11 higashi
#accesslog.confへのパス
$access_path ="/etc/opt/nec/wbmc/accesslog.conf";
$access_path_lock ="accesslog.conf";

#2008/09 higashi
#アクセスログが格納されているディレクトリを宣言
$access_log_dir="/var/log/roma/";

#webalizer用の引数
$log_generation = "";

#2008/11 higashi
#accesslog.ocnfファイルの読込み
@file = ();
if (!&readFile("$access_path", $access_path_lock, *file) ) {
	if(!&writeLog_rotate("[Error] $access_path cannot read",$accesslog_transfer_log_path,"wbmc_minute",$accesslog_transfer_log_rotate_size)){
		system("/bin/echo $accesslog_transfer_log_path cannot write");
	}
	exit(1);
}

#2008/11 higashi
#アクセスログ取得の動作状況を確認
$log_status = "OFF";
for ($i = 0; $i < @file; $i++) {
	#動作状況
	if ($file[$i] =~ /^\s*LOG_STATUS\s*=\s*(.*)\s*$/) {
	        $log_status = $1;
	}
}

#2008/08 higashi
#始めに処理を行うアクセスログのファイル名を取得
open(IN,"/bin/ls -rt $access_log_dir |");
$log_file_name="";
while(<IN>){
	if($_ =~/(access(\d+)\.log)/){
		$log_file_name=$access_log_dir.$1;
		$log_generation = $2;
		last;
	}
}
close(IN);

#2008/08 higashi
#処理対象であるアクセスログがなくなるまで繰り返す
while($log_file_name ne ""){

#
#webalizerのアクセスログ取得を動かす
#
##wbmc_webalizer_start
##wbmc_webalizer_end

#
#アクセスログ取得のスクリプトを動かす
#
##wbmc_accesslog_start
##wbmc_accesslog_end

	#2008/11 higashi
	#アクセスログ取得起動時はPUT_ACCESSLOGでのみアクセスログの削除を行う
	if($log_status eq "OFF"){
		system("/bin/rm -r $log_file_name > /dev/null 2>&1");
	}

	#2008/09 higashi
	#次に処理を行うファイル名を取得
	open(IN,"/bin/ls -rt $access_log_dir |");
	$log_file_name="";
	while(<IN>){
		if($_ =~/(access(\d+)\.log)/){
			$log_file_name=$access_log_dir.$1;
			$log_generation = $2;
			last;
		}
	}
	close(IN);
}
