⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iarstat_make_mml.p

📁 Perl开发的数据采集工具 基于UNIX
💻 P
字号:
#!/usr/local/perl5/bin/perl#################################2002/03/29 edited by yzliu####################################use strict;use FileHandle;use Getopt::Long;###############################################################################################sub match_time{	my($time1,$time2,$year1,$year2,$mon1,$mon2,$day1,$day2,$hour1,$hour2);	my($ret);	$time1=$_[0];	$time2=$_[1];	$time1 =~ /(\d+)-(\d+)-(\d+)-(\d+)/;	$year1=$1;	$mon1=$2;	$day1=$3;	$hour1=$4;	if($time2 eq '') {		return -1;	}	$time2 =~ /(\d+)-(\d+)-(\d+)-(\d+)/;        $year2=$1;        $mon2=$2;        $day2=$3;        $hour2=$4;	if($year1 > $year2){		$ret = 1;	}	elsif($year1 == $year2){                $ret = 0;        }	elsif($year1 < $year2){                $ret = -1;        }	if($ret == 0){	if($mon1 > $mon2){                $ret = 1;        }        elsif($mon1 == $mon2){                $ret = 0;        }        elsif($mon1 < $mon2){                $ret = -1;        }	}	if($ret == 0){	if($day1 > $day2){                $ret = 1;        }        elsif($day1 == $day2){                $ret = 0;        }        elsif($day1 < $day2){                $ret = -1;        }	}	if($ret == 0){	if($hour1 > $hour2){                $ret = 1;        }        elsif($hour1 == $hour2){                $ret = 0;        }        elsif($hour1 < $hour2){                $ret = -1;        }	}	return($ret);}sub lasthour{	my($time,$year,$mon,$day,$hour,$leap);	$time=$_[0];		$time =~ /(\d+)-(\d+)-(\d+)-(\d+)/;	$year=2000+$1;        $mon=$2;        $day=$3;        $hour=$4;	$leap = 0;        if(($year%4) == 0){                $leap = 1;                if(($year % 100 )== 0){                        if(($year%400) != 0){                                $leap = 0;                        }                }        }		if($hour>0){		$hour--;	}        else{		$hour = 23;                if($day > 1){                	$day--;		}		else{			if($mon > 1){				$mon--;			}			else{				$mon=12;				$year--;			}			if($mon==1||$mon==3||$mon==5||$mon==7||$mon==8||$mon==10||$mon==12){				$day=31;			}			elsif($mon==4||$mon==6||$mon==9||$mon==11){                                $day=30;			}			else{				if($leap){					$day=29;				}				else{					$day=28;                                }			}		}	}	$year=$year-2000;		return("$year-$mon-$day-$hour");}#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&##                       main process##&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&my($start,$stop,$i,$fd,$inputfile);my($year,$mon,$day,$hour,$num,$index,$line,$time,$current_hour);my $Usage = "\n\tUsage: $0 <report_number_file>  <start_time(yy-mm-dd-hh)> [stop_time(yy-mm-dd-hh)]\n\n";$inputfile = $ARGV[0];$start = $ARGV[1];$stop  = $ARGV[2];if(!( $inputfile )){        die "$Usage";}if(!(-f $inputfile)){        print "$inputfile is not exist\n";        die "$Usage";}$fd = new FileHandle($inputfile);$line = <$fd>;$line =~ tr/\n//d;close($fd);$fd = new FileHandle(">$inputfile");print $fd "[Command Sequence]\n";print $fd "cmd=GW-TASK:DISPIARJOB;\n";print $fd "time_out=10\n";if($line =~ /(\d+)-(\d+)-(\d+)-(\d+)-(\d+)/){	$year=$1;	$mon =$2;	$hour=$4;	$num =$5;	}else{	print $fd "ErrFileName\n";	close ($fd);	exit(0);}if(($start eq '')&&($stop eq '')){	$current_hour = `date +%H`;	if($current_hour == $hour){		if($num==1){                	$num=99;        	}        	else{                	$num--;        	}	}	if(length($year)==1){                $year = "0$year";        }        if(length($mon)==1){                $mon = "0$year";        }        if(length($num)==1){                $num = "0$num";        }	print $fd "cmd=GW-TASK:DISPIARSTAT:FILE=IR.A3$year$mon$num;\n";        print $fd "time_out=30\n";        print $fd "cmd=GW-CLOSE;\n";        print $fd "time_out=10\n";	close ($fd);        exit(0);}if(!($start =~ /(\d+)-(\d+)-(\d+)-(\d+)/)){        print $fd "ErrFileName\n";        close ($fd);        exit(0);}if($stop ne ''){	if(!($stop =~ /(\d+)-(\d+)-(\d+)-(\d+)/)){        	print $fd "ErrFileName\n";        	close ($fd);        	exit(0);	}}if(match_time($line,$start) < 0){	print $fd "WrongTime\n";        close ($fd);        exit(0);}if($stop ne '') {	if((match_time($line,$stop) < 0)||(match_time($stop,$start)<0)){        	print $fd "WrongTime\n";        	close ($fd);        	exit(0);	}}$index=0;for($i=0;$i<100;$i++){	if(match_time($line,$start) < 0){                #print "break here!\n";                last;        }	if((match_time($line,$stop) == 0)||(match_time($line,$start)==0)){		$index=1;	}	if($index==1){		$line =~ /(\d+)-(\d+)-(\d+)-(\d+)/;		$year=$1;                $mon=$2;		if(length($year)==1){			$year = "0$year";		}		if(length($mon)==1){                        $mon = "0$year";                }		if(length($num)==1){                        $num = "0$num";                }		print $fd "cmd=GW-TASK:DISPIARSTAT:FILE=IR.A3$year$mon$num;\n";		print $fd "time_out=30\n";	}	$time = lasthour($line);        $line = $time;        if($num==1){                $num=99;        }        else{                $num--;        }	#print "now:\$line:$line\n";	#print "now:\$num:$num\n";}		print $fd "cmd=GW-CLOSE;\n";		print $fd "time_out=10\n";close($fd);exit(0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -