#!/usr/bin/perl

# Copyright (C) 2000 NEC Corporation
# All Rights Reserved.

# RCS: $Id: wbmc_backup,v 1.14 2011/03/08 11:30:20 wbmc Exp $


#
# Хååץޥ
#
# usage: wbmc_backup [-c conffilename] [-s] [-l] [-m] -i item
#        -c     ե졼ե
#        -l     å˽
#        -l̵ åSTDERR˽
#        -m     ¹ԥå
#        -i     ХååоݤΥƥ̾
#        -s     ᡼ѥ
#	 -p	return page for running
#
# : :0
#         :1
#
#¤-s ɲ 2005/3/24 ishibashi 

##### 2001.02.09 BossSystem Tsuno
require "/opt/nec/wbmc/language.pl";
if($mes_language eq "Japanese"){
	require "/opt/nec/wbmc/bin/lang_j.pl";			# ܸå
} else {
	require "/opt/nec/wbmc/bin/lang_e.pl";			# Ѹå
}
##### 2001.02.09 BossSystem Tsuno

require "/opt/nec/wbmc/lib/wbmc.pl";

### 2005/3/30 rmake mail_log ishibashi  0009 ###
#WebAlizerưˤζ̴ؿ
$webalizer_chk = 0;
require "/opt/nec/wbmc/adm/system/system.pl";
### 2005/3/30 rmake mail_log ishibashi  0009 ###

$| = 1;
$old = select(STDERR); $| = 1; select($old);

# Ǥ
#$conf_file = "$WBMC_CONF_DIR/backup.conf";
#$conf_lock = "backup.conf";
$conf_file = "$WBMC_CONF_DIR/backup.conf." . $mes_language;			# ĥҤˤ
$conf_lock = "backup.conf." . $mes_language;						# ĥҤˤ

$tag_name = "wbmc_backup";
$log_file = "/var/log/wbmc";

# 
$item = "";
$errtolog = 0; # 0:STDERR, 1:LOG 
$msgout = 0;
$argerr = 0;
$argerrmsg = "";
$pageout = "";	# 2002/10/14 wyz (2_MODIFY_)
$tar_status = 0;
### 2005/3/23 rmake mail_log ishibashi  0002 ###
$mail_log = 0;	#᡼νȽ
$bk_times = 0;	#Хåå׻
$msg2 = "";		#顼å
### 2005/3/23 rmake mail_log ishibashi  0002 end###

#2009/06/28 higashi
#ǥեȤΥХååץǥ쥯ȥ
$def_backup_dir = "/var/backup";

for ($i = 0; $i < @ARGV; $i++) {
	if ($ARGV[$i] eq "-c") {
		if ($i == $#ARGV) {
			$argerrmsg = "'$ARGV[$i]'";
			$argerr = 1;
			next;
		}
		$conf_file = $ARGV[$i + 1];
		$i++;
	} elsif ($ARGV[$i] eq "-i") {
		if ($i == $#ARGV) {
			$argerrmsg = "'$ARGV[$i]'";
			$argerr = 1;
			next;
	}
		$item = $ARGV[$i + 1];
		$i++;
	} elsif ($ARGV[$i] eq "-l") {
		$errtolog = 1;
	} elsif ($ARGV[$i] eq "-m") {
		$msgout = 1;
######################## 2002/10/14 wyz (2_MODIFY_) begin ###################
	} elsif ($ARGV[$i] eq "-p"){
		if ($i == $#ARGV) {
			$argerrmsg = "'$ARGV[$j]'";
			$argerr = 1;
			next;
		}
		$pageout = $ARGV[$i + 1];
		$i++;
######################## 2002/10/14 wyz (2_MODIFY_) end ####################

### 2005/3/23 rmake mail_log ishibashi  0001 ###
	} elsif ($ARGV[$i] eq "-s") {
		$mail_log = 1;

### 2005/3/23 rmake mail_log ishibashi  0001 end ###
	} else {
		$argerrmsg = "'$ARGV[$i]'";
		$argerr = 1;
	}
}

if ($argerr) {
	&writeError("invalid argment $argerrmsg", "");
	exit(1);
}

# եͤɤ߹
if (!&readFile($conf_file, $conf_lock, *conf)) {
	&writeError("read file error '$conf_file'", "$item");
	exit(1);
}
$item_flag = 0;
for ($i = 0; $i < @conf; $i++) {
	if ($conf[$i] =~ /^\s*$item\s*{\s*$/) {
		$item_flag = 1;
	}
	if ($item_flag && $conf[$i] =~ /^\s*}\s*$/) {
		$item_flag = 0;
	}
	if ($item_flag && $conf[$i] =~ /^\s*TARGET\s*=\s*(.*)\s*$/) {
		$target_dir = &getValue($1);
	}
	if ($item_flag && $conf[$i] =~ /^\s*BACKUP\s*=\s*(.*)\s*$/) {
		$backup_dir = &getValue($1);
	}
	if ($item_flag && $conf[$i] =~ /^\s*ROTATE\s*=\s*(.*)\s*$/) {
		$rotate_max = &getValue($1);
	}

################################################ modified by wyz on 2002.09.18 ##################################################
        if ($item_flag && $conf[$i] =~ /^\s*BACKUPMODE\s*=\s*(.*)\s*$/) {
                $backupmode = &getValue($1);
                @line = split(/\s+/, $backupmode);
        }
        if ($item_flag && $conf[$i] =~ /^\s*WORKGROUP\s*=\s*(.*)\s*$/) {
                $workgroup = &getValue($1);
		$workgroup_arg = &encodeCmdArg($workgroup);	
        }
############################################### end ##############################################################################
        if ($item_flag && $conf[$i] =~ /^\s*WINMACHINE\s*=\s*(.*)\s*$/) {
                $winmachine = &getValue($1);
		$winmachine_arg = &encodeCmdArg($winmachine);
        }
        if ($item_flag && $conf[$i] =~ /^\s*SHARE\s*=\s*(.*)\s*$/) {
                $share = &getValue($1);
		$share_arg = &encodeCmdArg($share);
        }
        if ($item_flag && $conf[$i] =~ /^\s*SMBUSER\s*=\s*(.*)\s*$/) {
                $smbuser = &getValue($1);
		$smbuser_arg = &encodeCmdArg($smbuser);
        }
        if ($item_flag && $conf[$i] =~ /^\s*SMBPASSWD\s*=\s*"(.*)"\s*$/) {
                $smbpasswd = &getValue($1);
		$smbpasswd_arg = &encodeCmdArg($smbpasswd);
        }
        if ($item_flag && $conf[$i] =~ /^\s*FTPSERVER\s*=\s*(.*)\s*$/) {
                $ftpserver = &getValue($1);
		$ftpserver_arg = &encodeCmdArg($ftpserver);
        }
        if ($item_flag && $conf[$i] =~ /^\s*FTPDIR\s*=\s*(.*)\s*$/) {
                $ftpdir = &getValue($1);
		$ftpdir_arg = &encodeCmdArg2($ftpdir);
        }
        if ($item_flag && $conf[$i] =~ /^\s*FTPUSER\s*=\s*(.*)\s*$/) {
                $ftpuser = &getValue($1);
		$ftpuser_arg = &encodeCmdArg($ftpuser);
        }
        if ($item_flag && $conf[$i] =~ /^\s*FTPPASSWD\s*=\s*"(.*)"\s*$/) {
                $ftppasswd = &getValue($1);
		$ftppasswd_arg = &encodeCmdArg($ftppasswd);
        }
}

# ̵ͤϴͤ
if ($backup_dir eq "") {
	$backup_dir = "/var/backup";
}

if ($rotate_max eq "") {
	$rotate_max = 3;
}

# ХååоݤΥǥ쥯ȥ꤬¸ߤʤϽλ
if ($target_dir eq "") {
	&writeError("no target", $item);
	exit(1);
}

#2009/06/28 higashi
#ǥեȤΥǥ쥯ȥ꤬ʤк
if (! -d "/var/backup") {
	if (!mkdir("/var/backup", 0755)) {
		&writeError("mkdir error", $item);
		exit(1);
	}
}

#Хååץǥ쥯ȥ̵꤬к
if (! -d $backup_dir) {
	if (!mkdir($backup_dir, 0755)) {
		&writeError("mkdir error", $item);
		exit(1);
	}
}

if ($item eq "conf" || $item eq "log") {
	$target_dir =~ s/[\s,]+/ /g;
	@target_dir_chk = split(/ /, $target_dir);
	$target_dir = "";
	for ($i = 0; $i < @target_dir_chk; $i++) {
		$dir_chk = $target_dir_chk[$i];
		if ((-e $dir_chk) || ($dir_chk =~ /\*/)) {
			$target_dir .= " $target_dir_chk[$i]";
		}
	}
	$target_dir .= " --exclude='/var/log/roma/FilterLog'  --exclude='/var/log/roma/tcpdump_data'";
}
### 2005/3/30 rmake mail_log ishibashi  0010 ###
#WebAlizerưƤʤϥХååפʤ ᡼Фʤ

if ($item eq "alizer") {
	$webalizer_chk = &webalizer_sub();
	if($webalizer_chk) {
		if (!$mail_log) {
			print "<FONT COLOR=blue>webalizer no running</FONT><BR>";
		}

		$mail_log = 0;						#᡼뤷ʤ
		&writeError("webalizer no running", $item);
		exit(1);
	}
}

### 2005/3/30 rmake mail_log ishibashi  0010 end ###

for ($j = 0; $j < @line; $j++) {

	$backupmode = $line[$j];

	#2009.4 higashi
	#ftpΥե饰եȤƤѤ褦ѹ
	if($backupmode eq "SMB"){
		$filename = "samba_".$item."_running";
	}else{
		$filename = "ftp_".$item."_running";
	}

	#2009.4 higashi
	#߽ξϥХåå׽Ԥʤ
	if(-f "$def_backup_dir/$filename"){
		&writeError("backup process is running.",$item);
		exit(1);
	}

	#ե饰ΩƤѹ higashi
	system("/bin/touch $def_backup_dir/$filename");

### 2005/3/25 rmake mail_log ishibashi  0003 ###
#ȥ

	if ($mail_log) {
		print "------ $backupmode -----\n";

	} else {
		print "------ Start $backupmode -----\n";
	}

### 2005/3/25 rmake mail_log ishibashi  0003 end ###

	if ($backupmode eq "LOCAL") {
		$backup_file = "backup_$item";
		$rotate_file = "$def_backup_dir/.current_$item";
		$rotate_file_lock = ".current_$item";
	} elsif ($backupmode eq "SMB") {
		$ipaddr = "";
		#Get GatewayDev's IPaddr
		$ipaddr = &GetGatewayDevIP;

		if(!$ipaddr){
			&writeError("cannot execute &GetGatewayDevIP", $item);
			exit(1);
		}
		$backup_file = "backup_smb_$item";
		$rotate_file = "$def_backup_dir/.current_smb_$item";
		$rotate_file_lock = ".current_smb_$item";
	} elsif ($backupmode eq "FTP") {
		$backup_file = "backup_ftp_$item";
		$rotate_file = "$def_backup_dir/.current_ftp_$item";
		$rotate_file_lock = ".current_ftp_$item";
	}

	if (!&readFile($rotate_file, $rotate_file_lock, *current)) {
		$backup_num = 0;
		$backup_num_current = -1;
	} else {
		$backup_num = $current[0] + 1;
		$backup_num_current = $current[0];
	}

	if ($rotate_max <= $backup_num) {
		$backup_num = 0;
	}

	$tgzfile = "${backup_file}_${backup_num}.tgz";

	if ($backupmode eq "LOCAL") {
		unlink("$backup_dir/$tgzfile");		
	}

	# ֺ
	open(CMD, "/bin/tar cvfz ${backup_dir}/$tgzfile -P  --ignore-failed-read $target_dir 2>&1 |");

	$newpage = "./$pageout?$item";
	$killmode = "tgz";

### 2005/3/25 rmake mail_log ishibashi  0004 ###
	if (!$mail_log) {
		print  "$mes_wbmcbackup_01 <a href=\"kill_backup.cgi?$pid+$newpage+$killmode+$backup_dir+$tgzfile\">$mes_wbmcbackup_03</a>\n";
	}
### 2005/3/25 rmake mail_log ishibashi  0004 end ###
	$errmessage = "";
	$cnt = 0;
	while (<CMD>) {
        	if (/\/bin\/tar: /) {
                	if (/Removing leading/i) {
                        	next;
                	}
                	if (/Archive contains future timestamp/i) {
                       		next;
                	}
### 2005/3/25 rmake mail_log ishibashi  0004 ###
				if (!$mail_log) {
					print "<FONT COLOR=red>$_</FONT>";
				}
### 2005/3/25 rmake mail_log ishibashi  0004 end ###
        	        $errmessage = $_;
	        }
        	if (/^tar: /) {
                	$errmessage = $_;
                	last;
        	}
        	if ($msgout) {
                	if (($cnt % 100) == 0) {
### 2005/3/25 rmake mail_log ishibashi  0004 ###
						if (!$mail_log) {
        	           		print "$cnt: $_";
						}
### 2005/3/25 rmake mail_log ishibashi  0004 end ###
                	}
	                $cnt++;
        	}
	}
	close(CMD);
	if ($?) {
		if ($errmessage eq "") {
			&writeError("tar: Unknown error", $item);
			goto error;
		} else {
			&writeError($errmessage, $item);
			goto error;
		}
	} elsif ($errmessage) {
		$tar_status = 1;
### 2005/3/25 rmake mail_log ishibashi  0008 ###
		$errmessage2 = $errmessage;
### 2005/3/25 rmake mail_log ishibashi  0008 end ###
	}

	chdir("$backup_dir");

	#2009/06/26 higashi
	#ॢȥե饰
	$time_flg=0;

	if ($backupmode eq "LOCAL") {
		if (!chmod(0600, "$tgzfile")) {
			&writeError("chmod error", $item);
			goto error;
		}
	} elsif ($backupmode eq "SMB") {
	        if (!chmod(0666, "$tgzfile")) {
	                &writeError("chmod error", $item);
                        goto error;
                }

#		$pid = open(CMD, "\(/usr/bin/smbclient //$winmachine_arg/$share_arg -U $smbuser_arg%$smbpasswd_arg -W $workgroup_arg -c \"mkdir $ipaddr\";/bin/echo \"CMD_EXIT_CODE=\$\?\"\) 2>&1 |");
		$pid = open(CMD, "/usr/bin/smbclient //$winmachine_arg/$share_arg -U $smbuser_arg%$smbpasswd_arg -W $workgroup_arg -c \"mkdir $ipaddr\" 2>&1 |");
		$killmode = "sambadir";
		$time_flg=runpid($pid, $newpage, $mes_wbmcbackup_02, $killmode, $backup_dir, $tgzfile);
		$errmessage = "";
		while (<CMD>) {
			if (/ERR/) {
				if (/making remote directory/i) {
					next;
				}
				$errmessage = $_;
			} elsif (/Connection to.*failed/i) {
				$errmessage = $_;
			}
			## add 2003/05/06 add check message begin ##
			elsif (/tree connect failed/i) {
				$errmessage = $_;
			}
			## add 2003/05/06 add check message end ##
			## add 2003/05/28 add check exit code begin ##
			elsif (/protocol negotiation failed/i) { ## for do_connect
				$errmessage = $_;
			}
			elsif (/session setup failed/i) { ## for do_connect
				$errmessage = $_;
			}
			## add 2003/05/28 add check exit code end ##
			if ($msgout) {
### 2005/3/25 rmake mail_log ishibashi  0004 ###
				if (!$mail_log) {
					print $_;
				}
### 2005/3/25 rmake mail_log ishibashi  0004 end ###
			}
		}
		close(CMD);
		if ($errmessage ne "") {
			&writeError($errmessage, $item);
			goto error;
		}
		if($time_flg ne "0"){
			&writeError("send backupfile timeout", $item);
			goto error;
		}

#		$pid = open(CMD, "\(/usr/bin/smbclient //$winmachine_arg/$share_arg -U $smbuser_arg%$smbpasswd_arg -W $workgroup_arg -c \"cd $ipaddr; put $tgzfile; exit\" ; /bin/echo \"EXIT_CODE=\$\?\"\)2>&1 |");
		$pid = open(CMD, "/usr/bin/smbclient //$winmachine_arg/$share_arg -U $smbuser_arg%$smbpasswd_arg -W $workgroup_arg -c \"cd $ipaddr; put $tgzfile; exit\" 2>&1 |");
		$killmode = "samba";
		$time_flg=runpid($pid, $newpage, $mes_wbmcbackup_04, $killmode, $backup_dir, $tgzfile, $winmachine_arg, $share_arg, $smbpasswd_arg, $smbuser_arg, $ipaddr, $rotate_file, $rotate_file_lock, $workgroup_arg);
		$errmessage = "";
		while (<CMD>) {
			## mov 2003/05/28 add check exit code begin ##
			#if ($msgout) {
			#	print $_;
			#}
			## mov 2003/05/28 add check exit code end ##
			if (/ERR/) {
				$errmessage = $_;
			}
			## add 2003/05/06 add check message begin ##
			elsif (/tree connect failed/i) {
				$errmessage = $_;
			}
			## add 2003/05/06 add check message end ##
			## add 2003/05/28 add check exit code begin ##
			elsif (/Connection to.*failed/i) { ## for do_connect
				$errmessage = $_;
			}
			elsif (/protocol negotiation failed/i) { ## for do_connect
				$errmessage = $_;
			}
			elsif (/session setup failed/i) { ## for do_connect
				$errmessage = $_;
			}
			elsif (/^cd \\$ipaddr\\:/i) { ## for cd command
				$errmessage = $_;
			}
			elsif (/$tgzfile does not exist/i) { ## for put command
				$errmessage = $_;
			}
			elsif (/opening remote file.*$tgzfile/i) { ## for put command
				$errmessage = $_;
			}
			elsif (/Error opening local file.*$tgzfile/i) { ## for put command
				$errmessage = $_;
			}
			elsif (/ERROR: Not enough memory/i) { ## for put command
				$errmessage = $_;
			}
			elsif (/Error writing file:/i) { ## for put command
				$errmessage = $_;
			}
			if ($msgout) {
### 2005/3/25 rmake mail_log ishibashi  0004 ###
				if (!$mail_log) {
					print $_;
				}
### 2005/3/25 rmake mail_log ishibashi  0004 end ###
			}
			## add 2003/05/28 add check exit code end ##
		}
		close(CMD);
		if ($errmessage ne "") {
			&writeError($errmessage, $item);
			goto error;
		}
		if($time_flg ne "0"){
			&writeError("send backupfile timeout", $item);
			goto error;
		}

		unlink("$tgzfile");
	} elsif ($backupmode eq "FTP") {
		if (!chmod(0666, "$backup_dir/$tgzfile")) {
			&writeError("chmod error", $item);
			goto error;
		}
		$pid = open(CMD, "/usr/bin/lftp  -e \"cd $ftpdir_arg; put $tgzfile; exit\" -u $ftpuser_arg,$ftppasswd_arg $ftpserver_arg 2>&1 |");
		$killmode = "ftp";
		$ftp_flg=runpid($pid, $newpage, $mes_wbmcbackup_04, $killmode,$backup_dir, $tgzfile, $ftpserver_arg, $ftpdir_arg, $ftppasswd_arg, $ftpuser_arg);
		$errmessage = "";
		$errmessage2 = "";			#顼åݡե뤬̵ƤХåå׽λ ishibashi
		while (<CMD>) {
			if ($msgout) {
### 2005/3/25 rmake mail_log ishibashi  0004 ###
				if (!$mail_log) {
					print $_;
				}
### 2005/3/25 rmake mail_log ishibashi  0004 end ###
			}
			if (/byte transferred/i) {
				next;
			}
			$errmessage = $_;
		}
		close(CMD);
		if ($errmessage ne "") {
			&writeError($errmessage, $item);
			goto error;
		}
		if($ftp_flg ne "0"){
			&writeError("send backupfile timeout", $item);
			goto error;
		}
		unlink("$tgzfile");
	}
	
	if (-f "$def_backup_dir/$filename" || $backupmode eq "LOCAL") {
		$current[0] = $backup_num;
		if (!writeFile($rotate_file, $rotate_file_lock, @current)) {
			&writeLog("write file error", $tag_name, $log_file);
		}
	}
	system("/bin/rm -fr $def_backup_dir/$filename > /dev/null 2>&1");
}

if ($tar_status == 0) {
### 2005/3/28 rmake mail_log ishibashi 0007 ###
	&bk_completed("backup completed\!",$item);
### 2005/3/28 rmake mail_log ishibashi 0007 end ###
	exit(0);
} else {
### 2005/3/28 rmake mail_log ishibashi 0008 ###
#оݥե뤬̵硢ΰ̥եХååפ
	&bk_completed("backup completed but $errmessage2",$item);
### 2005/3/28 rmake mail_log ishibashi 0008 end ###
	exit(2);
}

error:
	chdir("$backup_dir");
	unlink("$tgzfile");
	system("/bin/rm -fr $def_backup_dir/$filename > /dev/null 2>&1");
	exit(1);
### 2005/3/28 rmake mail_log ishibashi 0007 ###
	&bk_completed("backup completed\!",$item);
### 2005/3/28 rmake mail_log ishibashi 0007 end ###
exit(0);

#-----------------------------------------------------------------------
sub writeError {
	local($msg, $item) = @_;

	$msg =~ s/\s*$//;

### 2005/3/28 rmake mail_log ishibashi 0005 ###᡼Ƴ
	$msg2 = $msg;

	if ($item ne "") {
		if ($mail_log) {
			print "$tag_name:$item\n";
		}
		$msg = "[$item]$msg";
	}

	if ($mail_log) {
		$bk_times = &getDate();		#߻ֳ
		print "date:$bk_times\nbackup failed...\n$msg2\n";
	}
### 2005/3/28 rmake mail_log ishibashi 0005 end ###

	if ($errtolog) {
		&writeLog($msg, $tag_name, $log_file);
	} else {
		print STDERR "$tag_name:$msg\n";
	}

}

### 2005/3/28 rmake mail_log ishibashi 0006 ###
#Хååץץ꡼ȥ᡼ƺ ޤ
sub bk_completed {
	local($msg, $item) = @_;

	$msg =~ s/\s*$//;

	if ($mail_log) {
		$bk_times = &getDate();		#߻ֳ
		print "$tag_name:$item\n";
		print "date:$bk_times\n$msg\n";
	}

	$msg = "[$item]$msg";

	if ($errtolog) {
		&writeLog($msg, $tag_name, $log_file);
	} else {
		print STDERR "$tag_name:$msg\n";
	}
}
### 2005/3/28 rmake mail_log ishibashi 0006 end ###
### 2005/3/28 rmake mail_log ishibashi 0011 ###
#webalizerưå
sub webalizer_sub {
	my($chk,$getstatus,$wbmc_minute,$wbmc_minute_lock,@file_minute);
	$chk = 0;
	$getstatus = 0;

	#--- wbmc_minuteؤΥѥ
	$wbmc_minute = "/opt/nec/wbmc/bin/wbmc_minute";
	$wbmc_minute_lock = "wbmc_minute";

	#wbmc_minuteξǼ
	@file_minute = ();

	#wbmc_minuteɤ߹
	if (!&readFile($wbmc_minute, $wbmc_minute_lock, *file_minute)) {
		&writeError("read file error '$wbmc_minute'", "$item");
		exit(1);
	}

	$getstatus = &getStatusWbmcMinute(*file_minute);

	if( $getstatus < 2 ) {
		$chk = 1;		#Webakizer
	}

	return($chk);
}
### 2005/3/28 rmake mail_log ishibashi 0011 end ###

sub getValue {
	local($str) = @_;

	$str =~ s/^[\s]*//;
	$str =~ s/[\s]*$//;
	if ($str =~ /^"(.*)"$/) {
		$str = $1;
	}

	return($str);
}

sub runpid
{
	my($pid, $newpage, $title, $killmode, $backup_dir, $tgzfile, $winmachine_arg, $share_arg, $smbpasswd_arg, $smbuser_arg, $ipaddr, $rotate_file, $rotate_file_lock, $workgroup_arg) = @_;
	
	local(*IN);
	my($i, @lines, $flg, @line, $cnt,$time);

### 2005/3/25 rmake mail_log ishibashi  0004 ###
	if (!$mail_log) {
		print "$title <A HREF=\"kill_backup.cgi?$pid+$newpage+$killmode+$backup_dir+$tgzfile+$winmachine_arg+$share_arg+$smbpasswd_arg+$smbuser_arg+$ipaddr+$rotate_file+$rotate_file_lock+$workgroup_arg\">$mes_wbmcbackup_03</A>\n";
	}
### 2005/3/25 rmake mail_log ishibashi  0004 end ###
	$cnt = 0;
	$time = 0;
	for (;;) {
		open(IN, "/bin/ps -efwwwww |");
		<IN>;
		@lines = <IN>;
		close(IN);
		
		$flg = 0;
		for ($i = 0; $i <= $#lines; $i++) {
			@line = split(/ +/, $lines[$i]);
			if ($line[2] eq $pid) {
				$flg = 1;
				last;
			}
		}
		if ($flg eq 0) {	
			last;
		}
		sleep 1;
### 2005/3/25 rmake mail_log ishibashi  0004 ###
		if (!$mail_log) {
			$cnt++;
			if ($cnt eq 5) {
				print "$mes_wbmcbackup_05\n";
				$cnt = 0;
			} else {
				print "$mes_wbmcbackup_05";
			}
		}
		#2009/06/26 higashi
		#FTP,SMBž˥ॢȤɲ
		$time++;
		if(($time >= 10800) && ($killmode ne "tgz")){
			if (!$mail_log) {
				print "\nॢȤȯǤޤ\n";
			}
			kill(9,$line[1]);
			return(1);
		}
	}
	if (!$mail_log) {
		print "\n";
	}
### 2005/3/25 rmake mail_log ishibashi  0004 end ###
	return(0);
}

sub html_page {
print <<END_OF_DATA;
Content-type: text/html; charset=euc-jp

<HTML>
<HEAD><TITLE>OK</TITLE></HEAD>
<BODY>@_</BODY>
</HTML>
END_OF_DATA
exit(1);
}

