diff options
author | M. Sean Finney <seanius@users.sourceforge.net> | 2005-06-26 16:27:05 (GMT) |
---|---|---|
committer | M. Sean Finney <seanius@users.sourceforge.net> | 2005-06-26 16:27:05 (GMT) |
commit | 69e1b0fe391b611fed0dd57422dbff76d5ea9546 (patch) | |
tree | 59b0ef368deb4e4574a869f1c75df8a9cefa0c5e /contrib/check_dl_size.pl | |
parent | 9bab24cf9573700751ba5f43fe7966f5ca338e47 (diff) | |
download | monitoring-plugins-69e1b0fe391b611fed0dd57422dbff76d5ea9546.tar.gz |
spring cleaning of contrib directory from andreas
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1192 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'contrib/check_dl_size.pl')
-rw-r--r-- | contrib/check_dl_size.pl | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/contrib/check_dl_size.pl b/contrib/check_dl_size.pl deleted file mode 100644 index e6cbda8..0000000 --- a/contrib/check_dl_size.pl +++ /dev/null | |||
@@ -1,148 +0,0 @@ | |||
1 | #! /usr/bin/perl -wT | ||
2 | |||
3 | # (c)2001 Patrick Greenwell, Stealthgeeks, LLC. (patrick@stealthgeeks.net) | ||
4 | # Licensed under the GNU GPL | ||
5 | # http://www.gnu.org/licenses/gpl.html | ||
6 | # | ||
7 | # check_dl_size: Attempts to download a specified file via FTP and verify | ||
8 | # it is a specified size. | ||
9 | # Requires Net::FTP | ||
10 | |||
11 | # Version 1.0 | ||
12 | # Last Updated: 8/31/01 | ||
13 | |||
14 | |||
15 | BEGIN { | ||
16 | if ($0 =~ m/^(.*?)[\/\\]([^\/\\]+)$/) { | ||
17 | $runtimedir = $1; | ||
18 | $PROGNAME = $2; | ||
19 | } | ||
20 | } | ||
21 | |||
22 | require 5.004; | ||
23 | use strict; | ||
24 | use Getopt::Long; | ||
25 | use vars qw($opt_H $opt_f $opt_s $opt_t $verbose $PROGNAME); | ||
26 | use lib $main::runtimedir; | ||
27 | use utils qw($TIMEOUT %ERRORS &print_revision &usage &support &is_error); | ||
28 | use Net::FTP; | ||
29 | |||
30 | sub help (); | ||
31 | sub print_help (); | ||
32 | sub print_usage (); | ||
33 | sub version (); | ||
34 | sub display_res($$); | ||
35 | my ($ftpfile, $ftpdir, $filesize, $answer) = (); | ||
36 | my $state = $ERRORS{'UNKNOWN'}; | ||
37 | |||
38 | # Directory to place file. If your machine is not secure DO NOT USE /tmp. | ||
39 | my $dir = "/usr/local/netsaint/etc/tmp"; | ||
40 | |||
41 | # Username for login | ||
42 | my $user = "anonymous"; | ||
43 | |||
44 | # Password (PLEASE TAKE APPROPRIATE PRECAUTIONS TO SECURE THIS) | ||
45 | my $pass = "guest\@example.com"; | ||
46 | |||
47 | |||
48 | delete @ENV{'PATH', 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; | ||
49 | |||
50 | Getopt::Long::Configure('bundling', 'no_ignore_case'); | ||
51 | GetOptions | ||
52 | ("V|version" => \&version, | ||
53 | "h|help" => \&help, | ||
54 | "v|verbose" => \$verbose, | ||
55 | "H|hostname=s" => \$opt_H, | ||
56 | "f|filename=s" => \$opt_f, | ||
57 | "s|filesize=s" => \$opt_s, | ||
58 | "t|timeout=s" => \$opt_t, | ||
59 | ); | ||
60 | |||
61 | ($opt_H) || ($opt_H = shift) || usage("Host address or name not specified\n"); | ||
62 | my $host = $1 | ||
63 | if ($opt_H =~ m/^(([0-9]{1,3}\.){3}[0-9]{1,3}|(([a-z0-9]+(\-+[a-z0-9]+)*|\.))+[a-z])$/i); | ||
64 | usage("Please provide a valid IP address or host name\n") unless ($host); | ||
65 | |||
66 | ($opt_f) || ($opt_f = shift) || usage("File name not specified\n"); | ||
67 | |||
68 | if ($opt_f =~ m/^(.*?)[\/\\]([^\/\\]+)$/) { | ||
69 | $ftpdir = $1; | ||
70 | $ftpfile = $2; | ||
71 | } | ||
72 | |||
73 | ($opt_s) || ($opt_s = shift) || usage("File size not specified\n"); | ||
74 | usage("File size must be numeric value") unless ($opt_s =~ m/^[0-9]+$/); | ||
75 | |||
76 | (($opt_t) && ($TIMEOUT = $opt_t)) || ($TIMEOUT = 120); | ||
77 | usage("TIMEOUT must be numeric value") unless ($TIMEOUT =~ m/^[0-9]+$/); | ||
78 | |||
79 | # Don't hang if there are timeout issues | ||
80 | $SIG{'ALRM'} = sub { | ||
81 | print ("ERROR: No response from ftp server (alarm)\n"); | ||
82 | exit $ERRORS{'UNKNOWN'}; | ||
83 | }; | ||
84 | alarm($TIMEOUT); | ||
85 | |||
86 | # Make certain temporary directory exists | ||
87 | |||
88 | if ( ! -e "$dir" ) { | ||
89 | display_res("Temporary directory $dir does not exist.\n", "CRITICAL"); | ||
90 | |||
91 | } | ||
92 | |||
93 | # Remove existing file if any | ||
94 | |||
95 | if ( -e "$dir/$ftpfile") { | ||
96 | unlink "$dir/$ftpfile" or | ||
97 | display_res("Can't remove existing file $dir/$ftpfile.\n", "CRITICAL"); | ||
98 | } | ||
99 | |||
100 | # Snarf file | ||
101 | |||
102 | my $ftp = Net::FTP->new("$host", Passive => 1, Timeout => $TIMEOUT) or | ||
103 | display_res("Can't connect to $host.\n", "CRITICAL"); | ||
104 | $ftp->login("$user","$pass") or | ||
105 | display_res("Login to $host failed", "CRITICAL"); | ||
106 | $ftp->cwd("$ftpdir") or | ||
107 | display_res("Can't change to directory $ftpdir.\n", "CRITICAL"); | ||
108 | $ftp->get($ftpfile, "$dir/$ftpfile") or | ||
109 | display_res("Can't retrieve file $ftpfile.\n", "CRITICAL"); | ||
110 | $ftp->quit; | ||
111 | |||
112 | # If file exists and is correct size we are happy. | ||
113 | |||
114 | if (( -e "$dir/$ftpfile" ) && (($filesize = -s "/tmp/$ftpfile") eq $opt_s)) { | ||
115 | display_res("File $ftpfile size OK: $filesize bytes.\n", "OK"); | ||
116 | } else { | ||
117 | # Otherwise we are not happy. | ||
118 | display_res("File $ftpfile size incorrect: $filesize bytes", "CRITICAL"); | ||
119 | } | ||
120 | |||
121 | exit; | ||
122 | |||
123 | sub print_usage () { | ||
124 | print "Usage: $PROGNAME -H <host> -f <filename> -s <file size in bytes> -t <timeout> \n"; | ||
125 | } | ||
126 | |||
127 | sub print_help () { | ||
128 | print_revision($PROGNAME,'$ Revision: 1.0 $ '); | ||
129 | print "Copyright (c) 2001 Patrick Greenwell, Stealthgeeks, LLC.\n\n"; | ||
130 | print_usage(); | ||
131 | support(); | ||
132 | } | ||
133 | |||
134 | sub version () { | ||
135 | print_revision($PROGNAME,'$ Revision: 1.0 $ '); | ||
136 | exit $ERRORS{'OK'}; | ||
137 | } | ||
138 | |||
139 | sub help () { | ||
140 | print_help(); | ||
141 | exit $ERRORS{'OK'}; | ||
142 | } | ||
143 | |||
144 | sub display_res ($$) { | ||
145 | my ($answer, $state) = @_; | ||
146 | print $answer; | ||
147 | exit $ERRORS{$state}; | ||
148 | } | ||