--- parse_bind9stat.pl 2002/07/01 20:01:25 1.4 +++ parse_bind9stat.pl 2002/07/10 22:41:01 1.5 @@ -2,8 +2,9 @@ use strict; -my $bind9_dump = shift @ARGV || "/var/log/stats.dump"; +my $log = shift @ARGV || "/var/log/stats.dump"; my $rndc = shift @ARGV || "/usr/sbin/rndc"; +my $delta="/var/tmp/"; system "$rndc stats"; @@ -13,8 +14,24 @@ my %forward; my %reverse; -open(D,$bind9_dump) || die "$bind9_dump: $!"; -while() { +my $tmp=$log; +$tmp=~s/\W/_/g; +$delta.=$tmp.".offset"; + +open(DUMP,$log) || die "$log: $!"; + +if (-e $delta) { + open(D,$delta) || die "can't open delta file '$delta' for '$log': $!"; + my $offset=; + chomp $offset; + close(D); + my $log_size = -s $log; + if ($offset <= $log_size) { + seek(DUMP,$offset,0); + } +} + +while() { next if /^(---|\+\+\+)/; chomp; my ($what,$nr,$direction) = split(/\s+/,$_,3); @@ -27,6 +44,10 @@ } } +close(DUMP); + +open(D,"> $delta") || die "can't open delta file '$delta' for log '$log': $!"; +print D tell(DUMP); close(D); foreach (@counters) {