- 论坛徽章:
- 307
|
- #!/usr/bin/perl
- use strict;
- use warnings;
- my %hData = ();
- while (<DATA>){
- my ($time, $ud, undef, $keys) = split;
- next if ($ud ne 'up');
- next if ($keys !~ /server/);
- my ($hours, $minutes) = split (/:/, $time);
- $hData{$hours}{int ($minutes / 30)}++;
- }
- foreach my $hh (sort {$a <=> $b} keys %hData){
- foreach my $var (0, 1){
- my $v = $hData{$hh}{$var} // 0;
- next if (!$v);
- my ($mh, $mt) = (':00', ':30');
- my $ht = $var ? $hh + 1 : $hh;
- ($mh, $mt) = ($mt, $mh) if ($hh ne $ht);
- print join ('-', $hh . $mh, $ht . $mt), "\t", $hData{$hh}{$var}, "\n";
- }
- }
- __DATA__
- 8:01:01 up XX- (server1)
- 8:02:01 up XX- (server3)
- 9:04:01 up XX- (test)
- 10:01:01 down XX- (server1)
- 10:31:01 up XX- (server1)
- 10:35:44 up XX- (server1)
- 10:45:44 up XX- (server1)
- 10:46:44 up XX- (server1)
- 10:59:01 up XX- (down)
- 10:29:11 up XX- (server2)
- 12:01:01 down XX- (server2)
- 15:01:01 up XX- (server2)
复制代码 |
|