Search Exchange
Search All Sites
Nagios Live Webinars
Let our experts show you how Nagios can help your organization.Login
Directory Tree
check_uptime
Meet The New Nagios Core Services Platform
Built on over 25 years of monitoring experience, the Nagios Core Services Platform provides insightful monitoring dashboards, time-saving monitoring wizards, and unmatched ease of use. Use it for free indefinitely.
Monitoring Made Magically Better
- Nagios Core on Overdrive
- Powerful Monitoring Dashboards
- Time-Saving Configuration Wizards
- Open Source Powered Monitoring On Steroids
- And So Much More!
Sample use:
define service{
host_name SERVER
service_description Uptime
check_command check_uptime
}
Sample output:
System Uptime - up 9 days, 5 Hours, 02 Minutes
Reviews (4)
bypelicanmedia, July 6, 2017
...incorrect results depending on time format...
Using:
struptime=`uptime | awk '{print $2,$3,$4,$5}'`
if [[ $struptime == *day* ]]; then
struptime1=${struptime%,}
else
struptime1=${struptime%, *}
fi
strdayshours=${struptime1%%:*}' hours '
strminutes=${struptime1##*:}
strminutes1=${strminutes%%,*}' minutes'
echo "System Uptime -" $strdayshours$strminutes1
exit 0
Machine up for 10 minutes:
Command = uptime
Result = 12:36:04 up 10 min, 1 user, load average: 0.00, 0.00, 0.00
Command = uptime | awk '{print $2,$3,$4,$5}'
Result = up 10 min, 1
Command = /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_uptime
Result = System Uptime - up 10 min hours up 10 min minutes
Machine up for 2 hours:
Command = uptime
Result = 12:48:27 up 2:02, 2 users, load average: 0.12, 0.06, 0.06
Command = uptime | awk '{print $2,$3,$4,$5}'
Result = up 2:02, 2 users,
Command = /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_uptime
Result = System Uptime - up 2 hours 02 minutes
Arguments $2,$3,$4,$5 are different depending if the time is in HH:MM format it works (not sure on days yet as have rebooted my servers) but breaks if it contains 'min'.
Guess it needs another if statement, but I am not knowledgable enough to work it out...
Using:
struptime=`uptime | awk '{print $2,$3,$4,$5}'`
if [[ $struptime == *day* ]]; then
struptime1=${struptime%,}
else
struptime1=${struptime%, *}
fi
strdayshours=${struptime1%%:*}' hours '
strminutes=${struptime1##*:}
strminutes1=${strminutes%%,*}' minutes'
echo "System Uptime -" $strdayshours$strminutes1
exit 0
Machine up for 10 minutes:
Command = uptime
Result = 12:36:04 up 10 min, 1 user, load average: 0.00, 0.00, 0.00
Command = uptime | awk '{print $2,$3,$4,$5}'
Result = up 10 min, 1
Command = /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_uptime
Result = System Uptime - up 10 min hours up 10 min minutes
Machine up for 2 hours:
Command = uptime
Result = 12:48:27 up 2:02, 2 users, load average: 0.12, 0.06, 0.06
Command = uptime | awk '{print $2,$3,$4,$5}'
Result = up 2:02, 2 users,
Command = /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_uptime
Result = System Uptime - up 2 hours 02 minutes
Arguments $2,$3,$4,$5 are different depending if the time is in HH:MM format it works (not sure on days yet as have rebooted my servers) but breaks if it contains 'min'.
Guess it needs another if statement, but I am not knowledgable enough to work it out...
The output is like this:
"System Uptime - up 16 Hours, 23, 2 users Minutes"
so, I added this line: "strminutes1=${strminutes%%,*}' Minutes'"
this way the output, comes this way "System Uptime - up 5 Hours, 36 Minutes" or "System Uptime - up 10 days, 10 Hours, 49 Minutes"
Complete code:
struptime=`uptime | awk '{print $2,$3,$4,$5}'`
struptime1=${struptime%,}
strdayshours=${struptime1%%:*}' Hours, '
strminutes=${struptime1##*:}
strminutes1=${strminutes%%,*}' Minutes'
echo "System Uptime -" $strdayshours$strminutes1
exit 0
Thanks a lot!
"System Uptime - up 16 Hours, 23, 2 users Minutes"
so, I added this line: "strminutes1=${strminutes%%,*}' Minutes'"
this way the output, comes this way "System Uptime - up 5 Hours, 36 Minutes" or "System Uptime - up 10 days, 10 Hours, 49 Minutes"
Complete code:
struptime=`uptime | awk '{print $2,$3,$4,$5}'`
struptime1=${struptime%,}
strdayshours=${struptime1%%:*}' Hours, '
strminutes=${struptime1##*:}
strminutes1=${strminutes%%,*}' Minutes'
echo "System Uptime -" $strdayshours$strminutes1
exit 0
Thanks a lot!
byIker Höek, February 6, 2013
2 of 2 people found this review helpful
Works as expected when uptime is higher than a day.
When it is not, the output looks like this:
"System Uptime - up 11 Hours, 16, 2 users Minutes"
I just put the line 7 inside an if that checks if there is an instance of "day" in the variable and formats accordingly:
if [[ $struptime == *day* ]]; then
struptime1=${struptime%,}
else
struptime1=${struptime%, *}
fi
I hope it helps =)
When it is not, the output looks like this:
"System Uptime - up 11 Hours, 16, 2 users Minutes"
I just put the line 7 inside an if that checks if there is an instance of "day" in the variable and formats accordingly:
if [[ $struptime == *day* ]]; then
struptime1=${struptime%,}
else
struptime1=${struptime%, *}
fi
I hope it helps =)
bylinux_samurai, September 6, 2011
This checks does what is intended. A simple bash script that awk's the uptime with output being user-friendly. We have implemented this check on Red Hat & CentOS 5 servers.