summaryrefslogtreecommitdiffstats
path: root/contrib/check_ftpget.pl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/check_ftpget.pl')
-rwxr-xr-xcontrib/check_ftpget.pl48
1 files changed, 48 insertions, 0 deletions
diff --git a/contrib/check_ftpget.pl b/contrib/check_ftpget.pl
new file mode 100755
index 0000000..de7e824
--- /dev/null
+++ b/contrib/check_ftpget.pl
@@ -0,0 +1,48 @@
1#!/usr/bin/perl -w
2## Written 12/5/00 Jeremy Hanmer
3# $Id$
4
5use strict;
6use Net::FTP;
7use Getopt::Std;
8
9use vars qw($opt_H $opt_u $opt_p $opt_f);
10getopts("H:u:p:f:");
11
12my $host = $opt_H ||
13 die "usage: check_ftp.pl -h host [<-u user> <-p pass> <-f file>]\n";
14
15my $username = $opt_u || 'anonymous';
16my $pass = $opt_p || "$ENV{'LOGNAME'}\@$ENV{'HOSTNAME'}" ;
17
18my $file = $opt_f;
19
20my $status = 0;
21my $problem;
22my $output = "ftp ok";
23
24my $ftp = Net::FTP->new("$host") ||
25 &crit("connect");
26
27$ftp->login("$username", "$pass") ||
28 &crit("login");
29
30$ftp->get($file) ||
31 &crit("get") if $file;
32
33sub crit()
34{
35 $problem = $_[0];
36 $status = 2;
37 if ( $problem eq 'connect' ) {
38 $output = "can't connect";
39 } elsif ( $problem eq 'login' ) {
40 $output = "can't log in";
41 } elsif ( $problem eq 'get' ) {
42 $output = "cant get $file";
43 }
44}
45
46print "$output\n";
47exit $status;
48