mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-05-28 04:35:40 -04:00
check_uptime: Add option to report uptime in days instead of seconds
Currently, the plugin output is: CRITICAL: Uptime is 38829029 seconds. When using the proposed `--days|-d` option, it will be: CRITICAL: Uptime is 449 days.
This commit is contained in:
parent
5943528121
commit
c99a166a43
2 changed files with 22 additions and 3 deletions
|
|
@ -25,7 +25,7 @@ use POSIX;
|
|||
use strict;
|
||||
use Getopt::Long;
|
||||
use vars qw($opt_V $opt_h $opt_v $verbose $PROGNAME $opt_w $opt_c
|
||||
$opt_f $opt_s
|
||||
$opt_f $opt_s $opt_d
|
||||
$lower_warn_threshold $upper_warn_threshold
|
||||
$lower_crit_threshold $upper_crit_threshold
|
||||
$status $state $msg);
|
||||
|
|
@ -137,9 +137,20 @@ if ( $uptime_seconds > $upper_crit_threshold ) {
|
|||
$state_str = "OK";
|
||||
}
|
||||
|
||||
# Prepare uptime value (seconds or days)
|
||||
my $uptime_text = "";
|
||||
my $uptime_unit = "";
|
||||
if ( $opt_d ) {
|
||||
$uptime_text = floor($uptime_seconds / 60 / 60 / 24);
|
||||
$uptime_unit = "days";
|
||||
} else {
|
||||
$uptime_text = $uptime_seconds;
|
||||
$uptime_unit = "seconds";
|
||||
}
|
||||
|
||||
$msg = "$state_str: ";
|
||||
|
||||
$msg .= "uptime is $uptime_seconds seconds. ";
|
||||
$msg .= "uptime is $uptime_text $uptime_unit. ";
|
||||
$msg .= "Exceeds $out_of_bounds_text threshold. " if $out_of_bounds_text;
|
||||
$msg .= "Running for $pretty_uptime. " if $opt_f;
|
||||
if ( $opt_s ) {
|
||||
|
|
@ -167,6 +178,7 @@ sub process_arguments(){
|
|||
"c=s" => \$opt_c, "critical=s" => \$opt_c, # critical if above this number
|
||||
"f" => \$opt_f, "for" => \$opt_f, # show "running for ..."
|
||||
"s" => \$opt_s, "since" => \$opt_s, # show "running since ..."
|
||||
"d" => \$opt_d, "days" => \$opt_d, # report uptime in days
|
||||
);
|
||||
|
||||
if ($opt_V) {
|
||||
|
|
@ -262,6 +274,7 @@ sub print_help () {
|
|||
print "-c (--critical) = Min. number of uptime to generate critical alert ( w < c )\n";
|
||||
print "-f (--for) = Show uptime in a pretty format (Running for x weeks, x days, ...)\n";
|
||||
print "-s (--since) = Show last boot in yyyy-mm-dd HH:MM:SS format (output from 'uptime -s')\n";
|
||||
print "-d (--days) = Show uptime in days\n";
|
||||
print "-h (--help)\n";
|
||||
print "-V (--version)\n";
|
||||
print "-v (--verbose) = debugging output\n";
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#
|
||||
|
||||
use strict;
|
||||
use Test::More tests => 40;
|
||||
use Test::More tests => 42;
|
||||
use NPTest;
|
||||
|
||||
my $result;
|
||||
|
|
@ -45,6 +45,12 @@ $result = NPTest->testCmd(
|
|||
cmp_ok( $result->return_code, '==', 2, "Uptime higher than 2 seconds" );
|
||||
like ( $result->output, '/Running since \d+/', "Output for the s parameter correct" );
|
||||
|
||||
$result = NPTest->testCmd(
|
||||
"./check_uptime -d -w 1 -c 2"
|
||||
);
|
||||
cmp_ok( $result->return_code, '==', 2, "Uptime higher than 2 seconds" );
|
||||
like ( $result->output, '/CRITICAL: uptime is \d+ days/', "Output for the d parameter correct" );
|
||||
|
||||
$result = NPTest->testCmd(
|
||||
"./check_uptime -w 1 -c 2"
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue