![So erhalten Sie die Serververfügbarkeit von AIX-Servern in Sekunden](https://rvso.com/image/170273/So%20erhalten%20Sie%20die%20Serververf%C3%BCgbarkeit%20von%20AIX-Servern%20in%20Sekunden.png)
Unter Linux kann ich die Server-Uptime-Ergebnisse in Sekunden (Wert) abrufen, indem ich den folgenden Befehl verwende
cat /proc/uptime
Aber in AIX haben wir kein uptime
in /proc
. Wenn ich einfach eingebe uptime
, erhalte ich Ergebnisse in Tagen, Stunden, Minuten, aber ich möchte die Ausgabe nur in Sekunden erhalten, z. B. 86400 Sekunden oder 30 Sekunden oder einen beliebigen Wert.
Mit dieser Ausgabe möchte ich einen Alarm vom SCOM-Überwachungstool festlegen, um Warnungen zu erstellen, wenn die Zeitspanne unter 1800 Sekunden liegt.
Von SCOM aus kann ich einen Shell-Befehl ausführen.
Antwort1
Sie könnten sich anpassenWie kann die Prozessverfügbarkeit unter verschiedenen Betriebssystemen erhöht werden?um die verstrichenen Sekunden von Prozess 1 (init) als ziemlich genaue Annäherung zurückzugeben:
#!/bin/sh
t=$(LC_ALL=POSIX ps -o etime= -p 1)
d=0 h=0
case $t in *-*) d=$((0 + ${t%%-*})); t=${t#*-};; esac
case $t in *:*:*) h=$((0 + ${t%%:*})); t=${t#*:};; esac
s=$((10#$d*86400 + 10#$h*3600 + 10#${t%%:*}*60 + 10#${t#*:}))
printf '%d\n' "$s"
Antwort2
Bitte verwenden Sie den folgenden Einzeiler.
uptime= uptime | awk -F ',' ' {print $1" "$2}'|awk ' {print $3" "$4" "$5}' | sed '1,$s/:/ /' | awk ' {if ($4 =="users") print $1*60 + $2;else if ($4 =="user") print $1*60 + $2;else if ($2=="mins") print $1;else print $1*24*60 + $3*60 + $4}'
;if [ $uptime -lt 300 ]; dann echo "Neustart vor 300 Minuten"; sonst echo "OK"; fi