![Cómo obtener resultados de tiempo de actividad del servidor AIX en segundos](https://rvso.com/image/170273/C%C3%B3mo%20obtener%20resultados%20de%20tiempo%20de%20actividad%20del%20servidor%20AIX%20en%20segundos.png)
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 uptime
tenemos /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