Cómo obtener resultados de tiempo de actividad del servidor AIX en segundos

Cómo obtener resultados de tiempo de actividad del servidor AIX en segundos

En Linux, puedo obtener los resultados del tiempo de actividad del servidor en segundos (valor) usando el siguiente comando

cat /proc/uptime

Pero en AIX no uptimetenemos /proc. Si simplemente escribo uptime, obtengo resultados en días, horas, minutos, pero quiero obtener el resultado solo en segundos, como 86400 segundos o 30 segundos o cualquier valor.

Con este resultado, quiero configurar una alerta desde la herramienta de monitoreo SCOM para crear alertas si dura menos de 1800 segundos.

Desde SCOM, puedo ejecutar un comando de shell.

Respuesta1

Podrías adaptarte¿Cómo conseguir un tiempo de actividad del proceso en diferentes sistemas operativos?para devolver los segundos transcurridos del proceso 1 (init) como una aproximación bastante cercana:

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

Respuesta2

Utilice debajo de un revestimiento.

tiempo de actividad= 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}';si [ $tiempo de actividad -lt 300 ]; luego haga eco de "Reiniciado antes de los 300 minutos"; de lo contrario, haga eco de "OK"; fi

información relacionada