![Como obter o tempo de atividade do servidor AIX em segundos](https://rvso.com/image/170273/Como%20obter%20o%20tempo%20de%20atividade%20do%20servidor%20AIX%20em%20segundos.png)
No Linux, posso obter os resultados do tempo de atividade do servidor em segundos (valor) usando o comando abaixo
cat /proc/uptime
Mas no AIX, não temos uptime
no /proc
. Se eu apenas digitar uptime
, obtenho resultados em dias, horas, minutos, mas quero obter a saída apenas em segundos, como 86.400 segundos ou 30 segundos ou qualquer valor.
Com esta saída, desejo definir um alerta da ferramenta de monitoramento SCOM para criar alertas se for inferior a 1.800 segundos.
No SCOM, posso executar um comando shell.
Responder1
Você poderia se adaptarComo obter o tempo de atividade do processo em sistemas operacionais diferentes?para retornar os segundos decorridos do processo 1 (init) como uma aproximação bastante aproximada:
#!/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"
Responder2
Por favor, use abaixo de um forro.
tempo de atividade= 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}'
;se [ $tempo de atividade -lt 300 ]; então echo "Reinicializado antes de 300 minutos"; senão echo "OK"; fi