So erhalten Sie die Serververfügbarkeit von AIX-Servern in Sekunden

So erhalten Sie die Serververfügbarkeit von AIX-Servern in Sekunden

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 uptimein /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

verwandte Informationen