From c7d6730255aaf4d07db947e9f032bc0206bccbcb Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Sat, 14 Sep 2013 20:41:24 +0200 Subject: check_load: add alternative uptime syntax check_load parses load from the uptime command if no proc filesystem is available. Seems like there are at least 2 different uptime outputs. linux: 20:44:34 up 25 days, 2:07, 13 users, load average: 0.13, 0.17, 0.22 freebsd 8: 8:44PM up 4:29, 1 user, load averages: 0.00, 0.00, 0.00 diff --git a/plugins/check_load.c b/plugins/check_load.c index 780ffff..296a823 100644 --- a/plugins/check_load.c +++ b/plugins/check_load.c @@ -153,7 +153,16 @@ main (int argc, char **argv) printf (_("Could not open stderr for %s\n"), PATH_TO_UPTIME); } fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process); - sscanf (input_buffer, "%*[^l]load average: %lf, %lf, %lf", &la1, &la5, &la15); + if(strstr(input_buffer, "load average:")) { + sscanf (input_buffer, "%*[^l]load average: %lf, %lf, %lf", &la1, &la5, &la15); + } + else if(strstr(input_buffer, "load averages:")) { + sscanf (input_buffer, "%*[^l]load averages: %lf, %lf, %lf", &la1, &la5, &la15); + } + else { + printf (_("could not parse load from uptime: %s\n"), result, PATH_TO_UPTIME); + return STATE_UNKNOWN; + } result = spclose (child_process); if (result) { -- cgit v0.10-9-g596f