Quero exibir o tempo decorrido desde a última inicialização do sistema uptime, mas não quero que ele exiba todas essas informações. Eu só quero saber quantas horas se passaram desde a última inicialização do sistema (ou seja: 18:17:59)
Quero exibir o tempo decorrido desde a última inicialização do sistema uptime, mas não quero que ele exiba todas essas informações. Eu só quero saber quantas horas se passaram desde a última inicialização do sistema (ou seja: 18:17:59)
Respostas:
Para obter o tempo decorrido desde a última inicialização do sistema hh:mm:ss, você pode usar:
awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime
/proc/uptime pseudo-arquivo contém dois números:
Assim, awkvocê pode usar o primeiro número e convertê-lo em hh:mm:ssformato.
Para obter tempo de atividade em segundos:
awk '{print $1}' /proc/uptime
Para obter tempo de atividade em minutos:
echo $(awk '{print $1}' /proc/uptime) / 60 | bc
Para obter tempo de atividade em horas:
echo $(awk '{print $1}' /proc/uptime) / 3600 | bc
Para obter x dígitos de precisão, você pode adicionar scale = x, por exemplo, para x = 2
echo "scale=2; $(awk '{print $1}' /proc/uptime) / 3600" | bc
Tente este:
uptime | awk '{ print $3 }'
De fato, imprime a terceira palavra da linha produzida por uptime.
uptimeparece não ter opções, mas também não consegui encontrar nada na rede.
Uma modificação trivial para mostrar os dias:
awk '{print int($1/86400)"days "int($1%86400/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime