X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=inline;f=printer-callbacks.pl;h=1b722a43e9c74c51ff5156b52309d0d51da1d089;hb=a5e45820d7b8ba529146d2ec9a015da576962d8d;hp=11124fe83a2d9bbc864893149c519eff6293c0f2;hpb=ce8f3e4fac2beb8e93d1cc137ec4d232dae098ac;p=snmp-json.git diff --git a/printer-callbacks.pl b/printer-callbacks.pl index 11124fe..1b722a4 100755 --- a/printer-callbacks.pl +++ b/printer-callbacks.pl @@ -23,7 +23,7 @@ sub iso_datetime { return sprintf "%04d-%02d-%02dT%02d:%02d:%02d", $y+1900, $m, $d, $hh, $mm, $ss; } -my $log_path = join('.', $dir, (split(/T/,iso_datetime,2))[0], 'json'); +my $log_path = join('.', $dir . (split(/T/,iso_datetime,2))[0], 'json'); open(my $log, '>>', $log_path) || die "$log_path: $!"; my $community = 'public'; @@ -42,7 +42,7 @@ my %vars = qw[ info iso.3.6.1.2.1.1.1.0 hostname iso.3.6.1.2.1.43.5.1.1.16.1 serial iso.3.6.1.2.1.43.5.1.1.17.1 -pages iso.3.6.1.2.1.43.10.2.1.4.1 +pages iso.3.6.1.2.1.43.10.2.1.4.1.1 @message iso.3.6.1.2.1.43.18.1.1.8 @consumable.name iso.3.6.1.2.1.43.11.1.1.6.1 @consumable.max iso.3.6.1.2.1.43.11.1.1.8.1 @@ -70,7 +70,8 @@ sub columns_cb { warn "# $ip var_bind_list ", dump( $session->var_bind_list ); my $results = $session->var_bind_list; - $response->{$ip} = { ip => $ip, utime => time() }; + $response->{$ip}->{ip} ||= $ip; + $response->{$ip}->{utime} ||= time(); # oid_lex_sort would be wonderfull to use here, but it doesn't work foreach my $r_oid ( sort { my ($af,$bf) = ($a,$b); @@ -83,7 +84,6 @@ sub columns_cb { substr($r_oid,0,length($_)) eq $_ } keys %$oid2name)[0] || die "no name for $r_oid in ",dump($oid2name); my $name = $oid2name->{$oid}; -warn "++ $oid $name $var\n"; if ( $name =~ m{^\@} ) { my $no_prefix = $name; $no_prefix =~ s{^\@}{}; @@ -94,8 +94,6 @@ warn "++ $oid $name $var\n"; } warn "## $ip response ",dump($response->{$ip}); - save_json $ip => $response->{$ip}; - print $log encode_json($response->{$ip}),"\n"; } foreach my $host ( @printers ) { @@ -151,6 +149,8 @@ foreach my $ip ( keys %$response ) { } print "$ip ",dump($status); + save_json $ip => $response->{$ip}; + print $log encode_json($response->{$ip}),"\n"; } close($log);