puppet/nagios/files/check_wins

41 lines
778 B
Perl
Executable file

#!/usr/bin/perl -w
use strict;
use Getopt::Long qw(:config no_ignore_case);
use Time::HiRes qw/ time sleep /;
sub usage() {
print "Usage: check_wins -H <host> -q <query> [-t <type>]\n"
}
my ($host, $query, $type);
my $result = GetOptions(
"H|host=s" => \$host,
"q|query=s" => \$query,
"t|type=s" => \$type,
);
if (!$type) {
$type = "00"
}
if (!$host || !$query) {
usage();
exit 3;
}
my ($start, $end, $time);
$start = time;
$result = `/usr/bin/nmblookup -R -U "$host" "$query#$type"`;
$end = time;
$time = sprintf("%.3f", $end - $start);
$result =~ s/\n/: /;
if ($result =~ /name_query failed/) {
print "WINS CRITICAL: ${result}";
exit(2);
} else {
print "WINS OK: ${time} seconds response time. ${result}";
exit(0);
}