diff options
| -rw-r--r-- | NEWS | 1 | ||||
| -rwxr-xr-x | plugins-scripts/check_disk_smb.pl | 30 |
2 files changed, 24 insertions, 7 deletions
| @@ -3,6 +3,7 @@ This file documents the major additions and syntax changes between releases. | |||
| 3 | 1.4.15 ... | 3 | 1.4.15 ... |
| 4 | ENHANCEMENTS | 4 | ENHANCEMENTS |
| 5 | New check_ntp_peer -m and -n options to check the number of usable time sources ("truechimers") | 5 | New check_ntp_peer -m and -n options to check the number of usable time sources ("truechimers") |
| 6 | New check_disk_smb -a option which allows for specifying the IP address of the remote server | ||
| 6 | FIXES | 7 | FIXES |
| 7 | Fix check_ircd binding to wrong interface (#668778) | 8 | Fix check_ircd binding to wrong interface (#668778) |
| 8 | Add proxy-authorization option to check_http (Marcel Kuiper - #1323230, Bryan Irvine - #2863925) | 9 | Add proxy-authorization option to check_http (Marcel Kuiper - #1323230, Bryan Irvine - #2863925) |
diff --git a/plugins-scripts/check_disk_smb.pl b/plugins-scripts/check_disk_smb.pl index 3f531ac7..985fa961 100755 --- a/plugins-scripts/check_disk_smb.pl +++ b/plugins-scripts/check_disk_smb.pl | |||
| @@ -22,7 +22,7 @@ require 5.004; | |||
| 22 | use POSIX; | 22 | use POSIX; |
| 23 | use strict; | 23 | use strict; |
| 24 | use Getopt::Long; | 24 | use Getopt::Long; |
| 25 | use vars qw($opt_P $opt_V $opt_h $opt_H $opt_s $opt_W $opt_u $opt_p $opt_w $opt_c $verbose); | 25 | use vars qw($opt_P $opt_V $opt_h $opt_H $opt_s $opt_W $opt_u $opt_p $opt_w $opt_c $opt_a $verbose); |
| 26 | use vars qw($PROGNAME); | 26 | use vars qw($PROGNAME); |
| 27 | use lib utils.pm ; | 27 | use lib utils.pm ; |
| 28 | use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); | 28 | use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); |
| @@ -48,7 +48,8 @@ GetOptions | |||
| 48 | "u=s" => \$opt_u, "username=s" => \$opt_u, | 48 | "u=s" => \$opt_u, "username=s" => \$opt_u, |
| 49 | "s=s" => \$opt_s, "share=s" => \$opt_s, | 49 | "s=s" => \$opt_s, "share=s" => \$opt_s, |
| 50 | "W=s" => \$opt_W, "workgroup=s" => \$opt_W, | 50 | "W=s" => \$opt_W, "workgroup=s" => \$opt_W, |
| 51 | "H=s" => \$opt_H, "hostname=s" => \$opt_H); | 51 | "H=s" => \$opt_H, "hostname=s" => \$opt_H, |
| 52 | "a=s" => \$opt_a, "address=s" => \$opt_a); | ||
| 52 | 53 | ||
| 53 | if ($opt_V) { | 54 | if ($opt_V) { |
| 54 | print_revision($PROGNAME,'@NP_VERSION@'); #' | 55 | print_revision($PROGNAME,'@NP_VERSION@'); #' |
| @@ -64,7 +65,7 @@ my $smbclientoptions= $opt_P ? "-p $opt_P " : ""; | |||
| 64 | # Options checking | 65 | # Options checking |
| 65 | 66 | ||
| 66 | ($opt_H) || ($opt_H = shift) || usage("Host name not specified\n"); | 67 | ($opt_H) || ($opt_H = shift) || usage("Host name not specified\n"); |
| 67 | my $host = $1 if ($opt_H =~ /^([-_.A-Za-z0-9]+\$?)$/); | 68 | my $host = $1 if ($opt_H =~ /^([-_.A-Za-z0-9 ]+\$?)$/); |
| 68 | ($host) || usage("Invalid host: $opt_H\n"); | 69 | ($host) || usage("Invalid host: $opt_H\n"); |
| 69 | 70 | ||
| 70 | ($opt_s) || ($opt_s = shift) || usage("Share volume not specified\n"); | 71 | ($opt_s) || ($opt_s = shift) || usage("Share volume not specified\n"); |
| @@ -141,6 +142,8 @@ if ( $warn_type eq "K") { | |||
| 141 | 142 | ||
| 142 | my $workgroup = $1 if (defined($opt_W) && $opt_W =~ /(.*)/); | 143 | my $workgroup = $1 if (defined($opt_W) && $opt_W =~ /(.*)/); |
| 143 | 144 | ||
| 145 | my $address = $1 if (defined($opt_a) && $opt_a =~ /(.*)/); | ||
| 146 | |||
| 144 | # end of options checking | 147 | # end of options checking |
| 145 | 148 | ||
| 146 | 149 | ||
| @@ -159,10 +162,21 @@ alarm($TIMEOUT); | |||
| 159 | # Execute an "ls" on the share using smbclient program | 162 | # Execute an "ls" on the share using smbclient program |
| 160 | # get the results into $res | 163 | # get the results into $res |
| 161 | if (defined($workgroup)) { | 164 | if (defined($workgroup)) { |
| 162 | $res = qx/$smbclient \/\/$host\/$share -W $workgroup -U $user%$pass $smbclientoptions -c ls/; | 165 | if (defined($address)) { |
| 166 | print "$smbclient " . "\/\/$host\/$share" ." $pass -W $workgroup -U $user $smbclientoptions -I $address -c ls\n" if ($verbose); | ||
| 167 | $res = qx/$smbclient "\/\/$host\/$share" $pass -W $workgroup -U $user $smbclientoptions -I $address -c ls/; | ||
| 168 | } else { | ||
| 169 | print "$smbclient " . "\/\/$host\/$share" ." $pass -W $workgroup -U $user $smbclientoptions -c ls\n" if ($verbose); | ||
| 170 | $res = qx/$smbclient "\/\/$host\/$share" $pass -W $workgroup -U $user $smbclientoptions -c ls/; | ||
| 171 | } | ||
| 163 | } else { | 172 | } else { |
| 164 | print "$smbclient " . "\/\/$host\/$share" ." $pass -U $user $smbclientoptions -c ls\n" if ($verbose); | 173 | if (defined($address)) { |
| 165 | $res = qx/$smbclient \/\/$host\/$share -U $user%$pass $smbclientoptions -c ls/; | 174 | print "$smbclient " . "\/\/$host\/$share" ." $pass -U $user $smbclientoptions -I $address -c ls\n" if ($verbose); |
| 175 | $res = qx/$smbclient "\/\/$host\/$share" $pass -U $user $smbclientoptions -I $address -c ls/; | ||
| 176 | } else { | ||
| 177 | print "$smbclient " . "\/\/$host\/$share" ." $pass -U $user $smbclientoptions -c ls\n" if ($verbose); | ||
| 178 | $res = qx/$smbclient "\/\/$host\/$share" $pass -U $user $smbclientoptions -c ls/; | ||
| 179 | } | ||
| 166 | } | 180 | } |
| 167 | #Turn off alarm | 181 | #Turn off alarm |
| 168 | alarm(0); | 182 | alarm(0); |
| @@ -238,7 +252,7 @@ exit $ERRORS{$state}; | |||
| 238 | 252 | ||
| 239 | sub print_usage () { | 253 | sub print_usage () { |
| 240 | print "Usage: $PROGNAME -H <host> -s <share> -u <user> -p <password> | 254 | print "Usage: $PROGNAME -H <host> -s <share> -u <user> -p <password> |
| 241 | -w <warn> -c <crit> [-W <workgroup>] [-P <port>]\n"; | 255 | -w <warn> -c <crit> [-W <workgroup>] [-P <port>] [-a <IP>]\n"; |
| 242 | } | 256 | } |
| 243 | 257 | ||
| 244 | sub print_help () { | 258 | sub print_help () { |
| @@ -256,6 +270,8 @@ Perl Check SMB Disk plugin for Nagios | |||
| 256 | Share name to be tested | 270 | Share name to be tested |
| 257 | -W, --workgroup=STRING | 271 | -W, --workgroup=STRING |
| 258 | Workgroup or Domain used (Defaults to \"WORKGROUP\") | 272 | Workgroup or Domain used (Defaults to \"WORKGROUP\") |
| 273 | -a, --address=IP | ||
| 274 | IP-address of HOST (only necessary if HOST is in another network) | ||
| 259 | -u, --user=STRING | 275 | -u, --user=STRING |
| 260 | Username to log in to server. (Defaults to \"guest\") | 276 | Username to log in to server. (Defaults to \"guest\") |
| 261 | -p, --password=STRING | 277 | -p, --password=STRING |
