equal
deleted
inserted
replaced
1 #! /usr/bin/perl |
1 #! /usr/bin/perl |
2 # © 2011 Heiko Schlittermann <hs@schlittermann.de> |
2 # © 2011 Heiko Schlittermann <hs@schlittermann.de> |
3 # source: https://ssl.schlittermann.de/hg/check-by-nsca |
3 # source: https://ssl.schlittermann.de/hg/check-by-nsca |
4 |
|
5 |
4 |
6 use strict; |
5 use strict; |
7 use warnings; |
6 use warnings; |
8 use Sys::Hostname; |
7 use Sys::Hostname; |
9 use File::Basename; |
8 use File::Basename; |
40 ); |
39 ); |
41 }, |
40 }, |
42 "d|debug" => \$o{debug}, |
41 "d|debug" => \$o{debug}, |
43 ) or pod2usage(); |
42 ) or pod2usage(); |
44 |
43 |
45 my $cmdline = |
44 my $cmdline = "send_nsca -H '$o{nsca_host}'" |
46 "send_nsca -H '$o{nsca_host}'" |
45 . (defined $o{nsca_port} ? " -p $o{nsca_port}" : ""); |
47 . (defined $o{nsca_port} ? " -p $o{nsca_port}" : ""); |
|
48 |
46 |
49 $_ = `@ARGV`; |
47 $_ = `@ARGV`; |
50 my $rc = $?; |
48 my $rc = $? >> 8; |
51 |
49 |
52 if ($o{svcname} eq "-") { |
50 if ($o{svcname} eq "-") { |
53 /^(?<service>\S+)\s/ or die "$ME: Can't guess servicename!\n"; |
51 /^(?<service>\S+)\s/ or die "$ME: Can't guess servicename!\n"; |
54 $o{svcname} = $+{service}; |
52 $o{svcname} = $+{service}; |
55 } |
53 } |
56 $_ = join "\t" => $o{hostname}, length($o{svcname}) ? $o{svcname} : (), $_; |
54 $_ = |
|
55 join "\t" => $o{hostname}, |
|
56 length($o{svcname}) |
|
57 ? $o{svcname} |
|
58 : (), $rc, $_; |
57 |
59 |
58 if ($o{debug}) { |
60 if ($o{debug}) { |
59 print $cmdline, "\n$_\n"; |
61 print $cmdline, "\n$_\n"; |
60 exit; |
62 exit; |
61 } |
63 } |
62 |
64 |
63 open(SEND, "|$cmdline") or die "$ME: Can't open `$cmdline': $!\n"; |
65 open(SEND, "|$cmdline") or die "$ME: Can't open `$cmdline': $!\n"; |
64 print SEND $_; |
66 print SEND $_; |
65 close(SEND) |
67 close(SEND) |
66 or die $! ? "$ME: Error closing `$cmdline': $!\n" |
68 or die $! |
67 : "$ME: Error status from `$cmdline': $?\n"; |
69 ? "$ME: Error closing `$cmdline': $!\n" |
|
70 : "$ME: Error status from `$cmdline': $?\n"; |
68 |
71 |
69 } |
72 } |
70 |
73 |
71 __END__ |
74 __END__ |
72 |
75 |