Add a Nagios plugin for FTP_LOGIN
This commit is contained in:
parent
30cf02c6d4
commit
dcce22247a
90
nagios-nrpe/files/plugins/check_ftp_login.pl
Normal file
90
nagios-nrpe/files/plugins/check_ftp_login.pl
Normal file
|
@ -0,0 +1,90 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use Net::FTP;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
use FindBin;
|
||||
use lib "$FindBin::Bin/../perl/lib";
|
||||
use Monitoring::Plugin;
|
||||
use File::Basename;
|
||||
|
||||
# Vars
|
||||
my ($code,$message);
|
||||
my ($SERVER,$USER,$PASSWORD,$FILE,$PATH);
|
||||
my ($ftp);
|
||||
|
||||
my $exit_code = 0;
|
||||
my (@line, @msg);
|
||||
|
||||
my $t_out = 15;
|
||||
my $VERSION = 1;
|
||||
my $PROGNAME = basename($0);
|
||||
|
||||
# Teststring ./test.pl -H ksl-vw2k530.gsdnet.ch -u ew.luks054.ksl -p ERcd45.e
|
||||
|
||||
my $p = Monitoring::Plugin->new(
|
||||
usage => "Usage: %s -H <hostname> -u <ftpuser> -p <ftppassword>",
|
||||
version => $VERSION,
|
||||
blurb => "Checks FTP Server with login/password",
|
||||
extra => "
|
||||
Options:
|
||||
-H
|
||||
Host name or IP Address
|
||||
-u
|
||||
FTP Username
|
||||
-p
|
||||
FTP Password
|
||||
-t
|
||||
Timeout (Default: $t_out seconds)
|
||||
",
|
||||
);
|
||||
|
||||
$p->add_arg(
|
||||
spec => 'H|hostname=s',
|
||||
help =>
|
||||
qq{-H, --hostname=STRING
|
||||
Hostname},
|
||||
);
|
||||
|
||||
$p->add_arg(
|
||||
spec => 'u|ftpuser=s',
|
||||
help =>
|
||||
qq{-u, --ftpuser=STRING
|
||||
FTP User},
|
||||
);
|
||||
|
||||
$p->add_arg(
|
||||
spec => 'p|ftppassword=s',
|
||||
help =>
|
||||
qq{-p, --ftppassword=STRING
|
||||
FTP Password},
|
||||
);
|
||||
|
||||
$p->add_arg(
|
||||
spec => 't|timeout=i',
|
||||
help =>
|
||||
qq{-t, --timeout=STRING
|
||||
Timeout},
|
||||
);
|
||||
|
||||
# Parse arguments and process standard ones (e.g. usage, help, version)
|
||||
$p->getopts;
|
||||
|
||||
# perform sanity checking on command line options
|
||||
if (defined $p->opts->t) {
|
||||
$t_out = $p->opts->timeout;
|
||||
}
|
||||
|
||||
# Main
|
||||
$ftp = Net::FTP->new($p->opts->H, Debug => 0, Timeout => $t_out)
|
||||
or die "Cannot connect to $SERVER: $@";
|
||||
|
||||
$ftp->login($p->opts->u,$p->opts->p)
|
||||
or die "Cannot login ", $ftp->message;
|
||||
|
||||
$ftp->quit;
|
||||
|
||||
# Output
|
||||
($code, $message) = $p->check_messages();
|
||||
$p->plugin_exit( $code, $message );
|
Loading…
Reference in a new issue