📄 iarstat_make_mml.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 + -