如何以秒為單位取得 AIX 伺服器結果的伺服器正常運作時間

如何以秒為單位取得 AIX 伺服器結果的伺服器正常運作時間

在 Linux 中,我可以使用以下命令來取得以秒為單位的伺服器正常運行時間結果(值)

cat /proc/uptime

uptime但在 AIX 中,我們沒有/proc.如果我只輸入uptime,我會得到以天、小時、分鐘為單位的結果,但我只想以秒為單位獲得輸出,例如 86400 秒或 30 秒或任何值。

有了這個輸出,我想從 SCOM 監控工具設定一個警報,以便在少於 1800 秒時建立警報。

從 SCOM,我可以執行 shell 命令。

答案1

你可以適應如何取得不同作業系統下進程的正常運作時間?以非常接近的近似值傳回進程 1 (init) 所經過的秒數:

#!/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"

答案2

請使用下面的一張襯墊..

正常運作時間= 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}';如果 [ $正常運作時間 -lt 300 ];然後 echo "300 分鐘前重新啟動";否則回顯「確定」;菲

相關內容