5 |
|
|
6 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
7 |
use RRD::Simple; |
use RRD::Simple; |
8 |
use DateTime; |
use POSIX qw/mktime/; |
9 |
|
|
10 |
my $debug = 0; |
my $debug = 0; |
11 |
my $zoom = 2; |
my $zoom = 2; |
20 |
my $file = shift; |
my $file = shift; |
21 |
open(my $fh, '<', $file) || die "$file: $!"; |
open(my $fh, '<', $file) || die "$file: $!"; |
22 |
|
|
23 |
print STDERR "."; |
my $t = mktime( 0, $5, $4, $3, $2 - 1, $1 - 1900 ) if $file =~ m{(\d\d\d\d)-(\d\d)-(\d\d)/(\d\d)(\d\d)}; |
|
|
|
|
my $t = (stat($file))[9]; |
|
|
if ( $file =~ m{(\d\d\d\d)-(\d\d)-(\d\d)/(\d\d)(\d\d)} ) { |
|
|
$t = new DateTime( |
|
|
year => $1, |
|
|
month => $2, |
|
|
day => $3, |
|
|
hour => $4, |
|
|
minute => $5, |
|
|
)->epoch; |
|
|
} |
|
24 |
|
|
25 |
warn "# $file ", -s $file, " bytes [$t]\n" if $debug; |
warn "# $file ", -s $file, " bytes [$t]\n" if $debug; |
26 |
|
|
52 |
my $s = c('VSZ'); |
my $s = c('VSZ'); |
53 |
if ( $s < $too_small ) { |
if ( $s < $too_small ) { |
54 |
$vsz->{$t}->{$veid}+= $s * 1024; |
$vsz->{$t}->{$veid}+= $s * 1024; |
55 |
|
print STDERR "."; |
56 |
} else { |
} else { |
57 |
my $cmd = c('COMMAND'); |
my $cmd = c('COMMAND'); |
58 |
$cmd =~ s{-.+$}{}; |
$cmd =~ s{-.+$}{}; |
63 |
$veid .= '-' . $cmd; |
$veid .= '-' . $cmd; |
64 |
$veid = substr($veid,0,16); |
$veid = substr($veid,0,16); |
65 |
$vsz->{$t}->{$veid}+= $s * 1024; |
$vsz->{$t}->{$veid}+= $s * 1024; |
66 |
|
print STDERR substr($cmd,0,1); |
67 |
} |
} |
68 |
$veids->{$veid}++; |
$veids->{$veid}++; |
69 |
} |
} |