Module: check_mk
Branch: master
Commit: 0c25c42bf9912fc8650f916f1066ca00ca222034
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=0c25c42bf9912f…
Author: Marcel Arentz <ma(a)mathias-kettner.de>
Date: Wed Jun 7 17:12:37 2017 +0200
4789 FIX check_mk_agent.aix: Fixed computation of uptime
once a day the computation of uptime has been wrong. This bug occured only
1 hour a day, when the output of uptime did contain days and minutes but
no hours.
Change-Id: I9b709d79c0dd3dd1ec1bc0616fe7ee48591383df
---
.werks/4789 | 12 ++++++++++++
agents/check_mk_agent.aix | 43 ++++++++++++++++++++++++++++++++-----------
2 files changed, 44 insertions(+), 11 deletions(-)
diff --git a/.werks/4789 b/.werks/4789
new file mode 100644
index 0000000..c876736
--- /dev/null
+++ b/.werks/4789
@@ -0,0 +1,12 @@
+Title: check_mk_agent.aix: Fixed computation of uptime
+Level: 1
+Component: checks
+Compatible: compat
+Edition: cre
+Version: 1.5.0i1
+Date: 1496848241
+Class: fix
+
+once a day the computation of uptime has been wrong. This bug occured only
+1 hour a day, when the output of uptime did contain days and minutes but
+no hours.
diff --git a/agents/check_mk_agent.aix b/agents/check_mk_agent.aix
index 7df2f73..ad0996e 100755
--- a/agents/check_mk_agent.aix
+++ b/agents/check_mk_agent.aix
@@ -225,18 +225,39 @@ if [ -x /usr/sbin/sendmail ] ; then
fi
# uptime formats
-# 12:55pm up 105 days, 21 hrs, 2 users, load average: 0.26, 0.26, 0.26 --> 9147600
-# 1:41pm up 105 days, 21:46, 2 users, load average: 0.28, 0.28, 0.27 --> 9150360
-# 05:26PM up 1:16, 1 user, load average: 0.33, 0.21, 0.20 --> 4560
-# 06:13PM up 2:03, 1 user, load average: 1.16, 1.07, 0.91 --> 7380
-# 08:43AM up 29 mins, 1 user, load average: 0.09, 0.18, 0.21 --> 1740
-# 08:47AM up 66 days, 18:34, 1 user, load average: 2.25, 2.43, 2.61 --> 5769240
+# 12:55pm up 105 days, 21 hrs, 2 users, load average: 0.26, 0.26, 0.26 --> 9147600
+# 1:41pm up 105 days, 21:46, 2 users, load average: 0.28, 0.28, 0.27 --> 9150360
+# 05:26PM up 1:16, 1 user, load average: 0.33, 0.21, 0.20 --> 4560
+# 06:13PM up 2:03, 1 user, load average: 1.16, 1.07, 0.91 --> 7380
+# 08:43AM up 29 mins, 1 user, load average: 0.09, 0.18, 0.21 --> 1740
+# 08:47AM up 66 days, 18:34, 1 user, load average: 2.25, 2.43, 2.61 --> 5769240
+# 08:45AM up 76 days, 34 mins, 1 user, load average: 2.25, 2.43, 2.61 --> 5769240
echo '<<<uptime>>>'
-uptime | sed -e 's/^.*up//g' -e 's/user.*$//g' -e 's/hrs/0/g' -e
's/:/ /g' \
- -e 's/days,//g' -e 's/mins//g' -e 's/.[^,]*$//'
\
- | awk '{if (NF == 3) a=86400*int($1)+3600*int($2)+60*int($3); \
- else if (NF == 2) a=3600*int($1)+60*int($2); \
- else a=60*int($1); printf("%d\n",a)}'
+UPTIME=$(uptime | sed -e 's/^.*up//g' -e 's/[0-9] user.*//g')
+if [[ $UPTIME == *"days"* ]]; then
+ DAYS=$(echo $UPTIME | sed -e 's/days,.*//g')
+else
+ DAYS="0"
+fi
+
+if [[ $UPTIME == *"hrs"* ]]; then
+ HOURS=$(echo $UPTIME | sed -e 's/hrs,.*//g' -e 's/.*,//g')
+else
+ HOURS="0"
+fi
+
+if [[ $UPTIME == *"mins"* ]]; then
+ MINS=$(echo $UPTIME | sed -e 's/mins,.*//g' -e 's/.*hrs,//g' -e
's/.*days,//g')
+else
+ MINS="0"
+fi
+
+if [[ $UPTIME == *":"* ]]; then
+ HOURS=$(echo $UPTIME | sed -e 's/.*days,//g' -e 's/:.*//g')
+ MINS=$(echo $UPTIME | sed -e 's/.*days,//g' -e 's/.*://g' -e
's/,.*//g')
+fi
+
+echo $(((DAYS*86400)+(HOURS*3600)+(MINS*60)))
if cd $PLUGINSDIR 2>/dev/null