如何以秒为单位获取 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 分钟前重新启动";否则回显“确定”;菲

相关内容