--- projects/cms/source/host/generic/statgrab.pl 2001/02/05 17:21:04 1.27 +++ projects/cms/source/host/generic/statgrab.pl 2001/02/05 17:43:45 1.28 @@ -3,7 +3,7 @@ #----------------------------------------------------------------- # Machine statistics grabber # $Author: tdb $ -# $Id: statgrab.pl,v 1.27 2001/02/05 17:21:04 tdb Exp $ +# $Id: statgrab.pl,v 1.28 2001/02/05 17:43:45 tdb Exp $ # # A Perl script to return various information about a host machine # by examining the output of some common Unix/Linux commands. @@ -50,7 +50,7 @@ exit(0); # the host should check this when reading data # means the host must be checked and updated to work with newer versions. sub print_ident() { - print 'version statgrab.pl $Revision: 1.27 $'; + print 'version statgrab.pl $Revision: 1.28 $'; print "\n"; } @@ -185,7 +185,7 @@ sub include_osver() { } -# sub to get system uptime. +# sub to get system uptime in seconds. sub include_uptime() { # debug stuff, all the different cases @@ -209,55 +209,52 @@ sub include_uptime() { my($uptime) = `$uptimebin`; # work out the days, hours, and minutes - if ($uptime =~ /hr/) { - # two possible cases here - if($uptime =~ /day/) { - # 0 minutes - $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+)\s+.*,/; - $uptime = "$1:$2:0"; + + if ($uptime =~ /day.*,\s+([0-9]+):([0-9]+)/) { + # normal + $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+):([0-9]+)/; + $uptime = "$1:$2:$3"; + } + else { + if ($uptime =~ /day/) { + if ($uptime =~ /hr/) { + # 0 minutes + $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+)\s+.*,/; + $uptime = "$1:$2:0"; + } + elsif ($uptime =~ /min/) { + # 0 hours + $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+)\s+.*,/; + $uptime = "$1:0:$2"; + } + else { + # 0 hours and 0 mins + $uptime =~ /up\s+([0-9]+)/; + $uptime = "$1:0:0"; + } } - else { + elsif ($uptime =~ /hr/) { # 0 days and 0 minutes $uptime =~ /up\s+([0-9]+)\s+/; $uptime = "0:$1:0"; } - } - elsif ($uptime =~ /min/) { - # two possible cases here - if($uptime =~ /day/) { - # 0 hours - $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+)\s+.*,/; - $uptime = "$1:0:$2"; - } - else { + elsif ($uptime =~ /min/) { # 0 days and 0 hours $uptime =~ /up\s+([0-9]+)\s+/; $uptime = "0:0:$1"; } - } - elsif ($uptime =~ /day/) { - if ($uptime =~ /day.*,\s+([0-9]+):([0-9]+)/) { - # normal - $uptime =~ /up\s+([0-9]+)\s+.*,\s+([0-9]+):([0-9]+)/; - $uptime = "$1:$2:$3"; - } else { - # 0 hours and 0 mins - $uptime =~ /up\s+([0-9]+)/; - $uptime = "$1:0:0"; + # 0 days + $uptime =~ /up\s+([0-9]+):([0-9]+)/; + $uptime = "0:$1:$2"; } } - else { - # 0 days - $uptime =~ /up\s+([0-9]+):([0-9]+)/; - $uptime = "0:$1:$2"; - } - # turn into minutes - + # turn into seconds $uptime =~ /([0-9]+):([0-9]+):([0-9]+)/; - $uptime = $3 + ($2 + $1*24)*60; - + $uptime = ($3+($2+($1*24))*60)*60; + + # print the value out &print_pair("unknown", "packet.os.uptime", $uptime); }