check_mem.pl
changeset 5 69e41ec7fccc
parent 4 d9cd7d16a0f4
child 6 6d3fc7726354
--- a/check_mem.pl	Tue Mar 31 09:25:16 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-#! /usr/bin/perl -w
-
-#    Copyright (C) 2011  Christian Arnold
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU General Public License for more details.
-#
-#    You should have received a copy of the GNU General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-#    Christian Arnold <arnold@schlittermann.de>
-
-use 5.010;
-use strict;
-use File::Basename;
-use Getopt::Long;
-use Pod::Usage;
-
-delete @ENV{ grep /^LC_/ => keys %ENV };
-$ENV{LANG}   = "C";
-$ENV{LC_ALL} = "C";
-
-sub version($$);
-sub get_meminfo();
-sub report($$$$);
-
-my %ERRORS = (
-    OK        => 0,
-    WARNING   => 1,
-    CRITICAL  => 2,
-    UNKNOWN   => 3,
-    DEPENDENT => 4
-);
-
-my $ME      = basename $0;
-my $NAME    = "MEM";
-my $VERSION = "0.3";
-
-my %opt = (
-    warning  => 70,
-    critical => 90
-);
-
-MAIN: {
-    Getopt::Long::Configure('bundling');
-    GetOptions(
-        "w|warning=i"  => \$opt{warning},
-        "c|critical=i" => \$opt{critical},
-        "h|help" => sub { pod2usage( -verbose => 1, -exitval => $ERRORS{OK} ) },
-        "m|man" => sub { pod2usage( -verbose => 2, -exitval => $ERRORS{OK} ) },
-        "V|version" => sub { version( $ME, $VERSION ); exit $ERRORS{OK}; }
-    ) or pod2usage( -verbose => 1, -exitval => $ERRORS{CRITICAL} );
-
-    my ( $percent, $total, $used, $free ) = get_meminfo();
-    report( $percent, $total, $used, $free );
-}
-
-sub report($$$$) {
-    my ( $percent, $total, $used, $free ) = @_;
-
-    if ( $percent >= $opt{critical} ) {
-        say
-"$NAME CRITICAL: $percent\% used memory - total: $total MB, used: $used MB, free: $free MB|MemUsed=$percent\%;$opt{warning};$opt{critical}";
-        exit $ERRORS{CRITICAL};
-    }
-    if ( $percent >= $opt{warning} ) {
-        say
-"$NAME WARNING: $percent\% used memory - total: $total MB, used: $used MB, free: $free MB|MemUsed=$percent\%;$opt{warning};$opt{critical}";
-        exit $ERRORS{WARNING};
-    }
-    say
-"$NAME OK: $percent\% used memory - total: $total MB, used: $used MB, free: $free MB|MemUsed=$percent\%;$opt{warning};$opt{critical}";
-    exit $ERRORS{OK};
-}
-
-sub get_meminfo() {
-    my ( $total, $used, $free, $percent );
-    my @cmd = ( '/usr/bin/free', '-m' );
-
-    foreach (`/usr/bin/free -m`) {
-        /^Mem:\s+(?<total>[\d.]+)/
-          and $total = $+{total}
-          and next;
-        /^.+buffers\/cache:\s+(?<used>[\d.]+)/
-          and $used = $+{used}
-          and last;
-    }
-
-    $free = ( $total - $used );
-    $percent = ( sprintf( "%.0f", ( $used / $total ) * 100 ) );
-
-    return ( $percent, $total, $used, $free );
-}
-
-sub version($$) {
-    my ( $progname, $version ) = @_;
-
-    say <<_VERSION;
-$progname version $version
-Copyright (C) 2011 by Christian Arnold and Schlittermann internet & unix support.
-
-$ME comes with ABSOLUTELY NO WARRANTY. This is free software,
-and you are welcome to redistribute it under certain conditions.
-See the GNU General Public Licence for details.
-_VERSION
-}
-
-__END__
-
-=head1 NAME
-
-check_mem - nagios plugin to check memory usage
-
-=head1 SYNOPSIS
-
-check_mem [B<-w>|B<--warning> I<integer>] [B<-c>|B<--critical> I<integer>]
-
-check_mem [B<-h>|B<--help>]
-
-check_mem [B<-m>|B<--man>]
-
-check_mem [B<-v>|B<--version>]
-
-=head1 OPTIONS
-
-=over
-
-=item B<-w>|B<--warning> I<integer>
-
-Exit with WARNING status if memory usage in percent exceeds this value (default: 70)
-
-=item B<-c>|B<--critical> I<integer>
-
-Exit with CRITICAL status if memory usage in percent exceeds this value (default: 90)
-
-=item B<-h>|B<--help>
-
-Print detailed help screen.
-
-=item B<-m>|B<--man>
-
-Print manual page.
-
-=item B<-V>|B<--version>
-
-Print version information.
-
-=back
-
-=head1 DESCRIPTION
-
-This nagios plugin check the memory usage.
-
-=head1 VERSION
-
-This man page is current for version 0.3 of B<check_mem>.
-
-=head1 AUTHOR
-
-Written by Christian Arnold L<arnold@schlittermann.de>
-
-=head1 COPYRIGHT
-
-Copyright (C) 2011 by Christian Arnold and Schlittermann internet & unix support.
-This is free software, and you are welcome to redistribute it under certain conditions.
-See the GNU General Public Licence for details.