X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=modules%2Fprivate%2Fmonitoring%2Fplugins%2Fcheck_command;fp=modules%2Fprivate%2Fmonitoring%2Fplugins%2Fcheck_command;h=0000000000000000000000000000000000000000;hp=2b546c1f3c0ae3fa43ba36da889646f1689a54cc;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hpb=fa25ffd4583cc362075cd5e1b4130f33306103f0 diff --git a/modules/private/monitoring/plugins/check_command b/modules/private/monitoring/plugins/check_command deleted file mode 100755 index 2b546c1..0000000 --- a/modules/private/monitoring/plugins/check_command +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use Getopt::Std; -$| = 1; - -my %opts; -getopts('hr:C:c:s:o:', \%opts); - -my $STATE_OK = 0; -my $STATE_WARNING = 1; -my $STATE_CRITICAL = 2; -my $STATE_UNKNOWN = 3; - -if ($opts{'h'} || scalar(%opts) == 0) { - &print_help(); - exit($STATE_OK); -} - -my $command = $opts{'c'}; -if ($command eq '') { - print "You must provide a command to check.\n"; - exit($STATE_UNKNOWN); -} - -my $expected_output = $opts{'o'}; -my $expected_status = $opts{'s'}; -my $other_command = $opts{'C'}; - -if ($other_command eq '' and $expected_status eq '' and $expected_output eq '') { - $expected_status = 0; -} - -my $cmd = $command . ' 2>&1'; -my $other_cmd; -if ($other_command ne '') { - $other_cmd = $other_command . ' 2>&1'; -} - -my $run_as; -if ($opts{'r'}) { - $run_as = $opts{'r'}; - $cmd = "sudo -u $run_as -n $cmd"; - - if ($other_command ne '') { - $other_cmd = "sudo -u $run_as -n $other_cmd"; - } - -} - -my $cmd_result = `$cmd`; -my $other_cmd_result; -if ($other_command ne '') { - $other_cmd_result = `$other_cmd`; - chomp($other_cmd_result); -} - -chomp($cmd_result); -if ($cmd_result =~ /sudo/i) { - print "$command CRITICAL - No sudo right to run the command | result=1;;;;\n"; - exit($STATE_UNKNOWN); -} elsif ($expected_status ne '') { - if ($? != $expected_status) { - print "$command CRITICAL - Response status $? | result=1;;;;\n"; - exit($STATE_CRITICAL); - } else { - print "$command OK - Response status $? | result=0;;;;\n"; - exit($STATE_OK); - } -} elsif ($other_command ne '') { - if ($cmd_result ne $other_cmd_result) { - print "$command CRITICAL - Expected output not matching other command output | result=1;;;;\n"; - exit($STATE_CRITICAL); - } else { - print "$command OK - Expected output matching other command output | result=0;;;;\n"; - exit($STATE_OK); - } -} else { - if ($cmd_result !~ /$expected_output/) { - print "$command CRITICAL - Expected output not matching | result=1;;;;\n"; - exit($STATE_CRITICAL); - } else { - print "$command OK - Expected output matching | result=0;;;;\n"; - exit($STATE_OK); - } -} - -sub print_help() { - print << "EOF"; -Check whether the given command responds as expected. One of -o -C or -s must be selected. - -Options: --h - Print detailed help screen - --c - command to run (required) - --C - other command to compare output - --r user - Run as user via sudo. - --s - status code to check - --o - output to check - -EOF -} -