aboutsummaryrefslogtreecommitdiff
path: root/contrib/check_digitemp.pl
diff options
context:
space:
mode:
authorGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2013-09-02 13:16:24 +0200
committerGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2013-09-02 13:16:24 +0200
commitb15adb7762b6caaecaa83637abfcf5fdb4802092 (patch)
tree64eddbe2aa1a7f98a140be0f7973f05d7a781ae0 /contrib/check_digitemp.pl
parentc4d5882b9e1d07c7b61091062b7d085fa5f00284 (diff)
downloadmonitoring-plugins-b15adb7762b6caaecaa83637abfcf5fdb4802092.tar.gz
Remove "contrib" plugins
These days, sites such as "Nagios Exchange" are a much better place for publishing plugins not maintained by the Plugins Development Team.
Diffstat (limited to 'contrib/check_digitemp.pl')
-rwxr-xr-xcontrib/check_digitemp.pl252
1 files changed, 0 insertions, 252 deletions
diff --git a/contrib/check_digitemp.pl b/contrib/check_digitemp.pl
deleted file mode 100755
index d2b40a10..00000000
--- a/contrib/check_digitemp.pl
+++ /dev/null
@@ -1,252 +0,0 @@
-#!/usr/bin/perl -w
-
-# check_digitemp.pl Copyright (C) 2002 by Brian C. Lane <bcl@brianlane.com>
-#
-# This is a NetSaint plugin script to check the temperature on a local
-# machine. Remote usage may be possible with SSH
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-#
-# ===========================================================================
-# Howto Install in NetSaint (tested with v0.0.7)
-#
-# 1. Copy this script to /usr/local/netsaint/libexec/ or wherever you have
-# placed your NetSaint plugins
-#
-# 2. Create a digitemp config file in /usr/local/netsaint/etc/
-# eg. digitemp -i -s/dev/ttyS0 -c /usr/local/netsaint/etc/digitemp.conf
-#
-# 3. Make sure that the webserver user has permission to access the serial
-# port being used.
-#
-# 4. Add a command to /usr/local/netsaint/etc/commands.cfg like this:
-# command[check-temp]=$USER1$/check_digitemp.pl -w $ARG1$ -c $ARG2$ \
-# -t $ARG3$ -f $ARG4$
-# (fold into one line)
-#
-# 5. Tell NetSaint to monitor the temperature by adding a service line like
-# this to your hosts.cfg file:
-# service[kermit]=Temperature;0;24x7;3;5;1;home-admins;120;24x7;1;1;1;; \
-# check-temp!65!75!1!/usr/local/netsaint/etc/digitemp.conf
-# (fold into one line)
-# 65 is the warning temperature
-# 75 is the critical temperature
-# 1 is the sensor # (as reported by digitemp -a) to monitor
-# digitemp.conf is the path to the config file
-#
-# 6. If you use Centigrade instead of Fahrenheit, change the commands.cfg
-# line to include the -C argument. You can then pass temperature limits in
-# Centigrade in the service line.
-#
-# ===========================================================================
-# Howto Install in Nagios (tested with v1.0b4)
-#
-# 1. Copy this script to /usr/local/nagios/libexec/ or wherever you have
-# placed your Nagios plugins
-#
-# 2. Create a digitemp config file in /usr/local/nagios/etc/
-# eg. digitemp -i -s/dev/ttyS0 -c /usr/local/nagios/etc/digitemp.conf
-#
-# 3. Make sure that the webserver user has permission to access the serial
-# port being used.
-#
-# 4. Add a command to /usr/local/nagios/etc/checkcommands.cfg like this:
-#
-# #DigiTemp temperature check command
-# define command{
-# command_name check_temperature
-# command_line $USER1$/check_digitemp.pl -w $ARG1$ -c $ARG2$ \
-# -t $ARG3$ -f $ARG4$
-# (fold above into one line)
-# }
-#
-# 5. Tell NetSaint to monitor the temperature by adding a service line like
-# this to your service.cfg file:
-#
-# #DigiTemp Temperature check Service definition
-# define service{
-# use generic-service
-# host_name kermit
-# service_description Temperature
-# is_volatile 0
-# check_period 24x7
-# max_check_attempts 3
-# normal_check_interval 5
-# retry_check_interval 2
-# contact_groups home-admins
-# notification_interval 240
-# notification_period 24x7
-# notification_options w,u,c,r
-# check_command check_temperature!65!75!1! \
-# /usr/local/nagios/etc/digitemp.conf
-# (fold into one line)
-# }
-#
-# 65 is the warning temperature
-# 75 is the critical temperature
-# 1 is the sensor # (as reported by digitemp -a) to monitor
-# digitemp.conf is the path to the config file
-#
-# 6. If you use Centigrade instead of Fahrenheit, change the checkcommands.cfg
-# line to include the -C argument. You can then pass temperature limits in
-# Centigrade in the service line.
-#
-# ===========================================================================
-
-# Modules to use
-use strict;
-use Getopt::Std;
-
-# Define all our variable usage
-use vars qw($opt_c $opt_f $opt_t $opt_w $opt_F $opt_C
- $temperature $conf_file $sensor $temp_fmt
- $crit_level $warn_level $null
- %exit_codes
- $percent $fmt_pct
- $verb_err $command_line);
-
-
-# Predefined exit codes for NetSaint
-%exit_codes = ('UNKNOWN' ,-1,
- 'OK' , 0,
- 'WARNING' , 1,
- 'CRITICAL', 2,);
-
-# Default to Fahrenheit input and result (use -C to change this)
-$temp_fmt = 3;
-
-
-# Get the options
-if ($#ARGV le 0)
-{
- &usage;
-} else {
- getopts('f:t:FCc:w:');
-}
-
-# Shortcircuit the switches
-if (!$opt_w or $opt_w == 0 or !$opt_c or $opt_c == 0)
-{
- print "*** You must define WARN and CRITICAL levels!";
- &usage;
-}
-
-# Check if levels are sane
-if ($opt_w >= $opt_c)
-{
- print "*** WARN level must not be greater than CRITICAL when checking temperature!";
- &usage;
-}
-
-
-$warn_level = $opt_w;
-$crit_level = $opt_c;
-
-# Default sensor to read is #0
-if(!$opt_t)
-{
- $sensor = 0;
-} else {
- $sensor = $opt_t;
-}
-
-# Default config file is /etc/digitemp.conf
-if(!$opt_f)
-{
- $conf_file = "/etc/digitemp.conf";
-} else {
- $conf_file = $opt_f;
-}
-
-# Check for config file
-if( !-f $conf_file ) {
- print "*** You must have a digitemp.conf file\n";
- &usage;
-}
-
-
-if($opt_C)
-{
- $temp_fmt = 2;
-}
-
-# Read the output from digitemp
-# Output in form 0\troom\tattic\tdrink
-open( DIGITEMP, "/usr/local/bin/digitemp -c $conf_file -t $sensor -q -o $temp_fmt |" );
-
-# Process the output from the command
-while( <DIGITEMP> )
-{
-# print "$_\n";
- chomp;
-
- if( $_ =~ /^nanosleep/i )
- {
- print "Error reading sensor #$sensor\n";
- close(DIGITEMP);
- exit $exit_codes{'UNKNOWN'};
- } else {
- # Check for an error from digitemp, and report it instead
- if( $_ =~ /^Error.*/i ) {
- print $_;
- close(DIGITEMP);
- exit $exit_codes{'UNKNOWN'};
- } else {
- ($null,$temperature) = split(/\t/);
- }
- }
-}
-close( DIGITEMP );
-
-if( $temperature and $temperature >= $crit_level )
-{
- print "Temperature CRITICAL - Sensor #$sensor = $temperature ";
- if( $temp_fmt == 3 ) { print "F\n"; } else { print "C\n"; }
- exit $exit_codes{'CRITICAL'};
-} elsif ($temperature and $temperature >= $warn_level ) {
- print "Temperature WARNING - Sensor #$sensor = $temperature ";
- if( $temp_fmt == 3 ) { print "F\n"; } else { print "C\n"; }
- exit $exit_codes{'WARNING'};
-} elsif( $temperature ) {
- print "Temperature OK - Sensor #$sensor = $temperature ";
- if( $temp_fmt == 3 ) { print "F\n"; } else { print "C\n"; }
- exit $exit_codes{'OK'};
-} else {
- print "Error parsing result for sensor #$sensor\n";
- exit $exit_codes{'UNKNOWN'};
-}
-
-# Show usage
-sub usage()
-{
- print "\ncheck_digitemp.pl v1.0 - NetSaint Plugin\n";
- print "Copyright 2002 by Brian C. Lane <bcl\@brianlane.com>\n";
- print "See source for License\n";
- print "usage:\n";
- print " check_digitemp.pl -t <sensor> -f <config file> -w <warnlevel> -c <critlevel>\n\n";
- print "options:\n";
- print " -f DigiTemp Config File\n";
- print " -t DigiTemp Sensor #\n";
- print " -F Temperature in Fahrenheit\n";
- print " -C Temperature in Centigrade\n";
- print " -w temperature temperature >= to warn\n";
- print " -c temperature temperature >= when critical\n";
-
- exit $exit_codes{'UNKNOWN'};
-}