Package: nagios-plugins-contrib Version: 11.20140704 Tags: patch Hi,
I noticed that check_libs sometimes parses files incorrectly inside an OpenVZ container (wheezy host and guest, proxmox ve 2.6.32 kernel): # /usr/lib/nagios/plugins/check_libs --verbose Running /usr/bin/lsof -F0 -n adding bash(28081) because of [ (deleted)/tmp/tmpfXKFYTG]: f1aul tREGG0x8002;0x0D0x6ds218i9441399k0n (deleted)/tmp/tmpfXKFYTG adding bash(28081) because of [ (deleted)/tmp/tmpfXKFYTG]: f2aul tREGG0x8002;0x0D0x6ds218i9441399k0n (deleted)/tmp/tmpfXKFYTG adding puppet(28244) because of [ (deleted)/tmp/tmpfXKFYTG]: f1aul tREGG0x8002;0x0D0x6ds218i9441399k0n (deleted)/tmp/tmpfXKFYTG adding puppet(28244) because of [ (deleted)/tmp/tmpfXKFYTG]: f2aul tREGG0x8002;0x0D0x6ds218i9441399k0n (deleted)/tmp/tmpfXKFYTG The following processes have libs linked that were upgraded: root: bash (28081), puppet (28244) So in some cases there is a space in front of "(deleted)". Attached is a patch that fixes this. Regards, Felix
diff -Nur a/check_libs/nagios-check-libs b/check_libs/nagios-check-libs --- a/check_libs/nagios-check-libs +++ b/check_libs/nagios-check-libs @@ -170,7 +170,7 @@ my $inode = $fields{i}; my $path = $fields{n}; if ($path =~ m/\.dpkg-/ || $path =~ m/\(deleted\)/ || $path =~ /path inode=/ || $fd eq 'DEL') { - $path =~ s/^\(deleted\)//; # in some cases "(deleted)" is at the beginning of the string + $path =~ s/^ ?\(deleted\)//; # in some cases "(deleted)" is at the beginning of the string for my $i (@{$config->{'ignorelist'}}) { my $ignore = eval($i); next LINE if $ignore;