Como exibir o tempo decorrido desde a última inicialização do sistema usando o “uptime”?

14

Eu quero exibir o tempo decorrido desde a última inicialização do sistema usando uptime , mas não quero exibir todas essas informações. Eu só quero saber quantas horas se passaram desde a última inicialização do sistema (ou seja: 18:17:59)

    
por Adrian George 22.08.2013 / 00:42

4 respostas

18

Para obter o tempo decorrido desde a última inicialização do sistema no formato hh:mm:ss , você pode usar:

awk '{print int(/3600)":"int((%3600)/60)":"int(%60)}' /proc/uptime

/proc/uptime pseudo-file contém dois números:

  • O primeiro número é quanto tempo o sistema ficou em segundos.
  • O segundo número é quanto desse tempo a máquina passou inativa em segundos.

Então, usando awk , você pode pegar o primeiro número e convertê-lo em hh:mm:ss format.

    
por Radu Rădeanu 22.08.2013 / 08:33
9

Para aumentar o tempo de atividade em segundos:

awk '{print }' /proc/uptime

Para aumentar o tempo de atividade em minutos:

 echo $(awk '{print }' /proc/uptime) / 60 | bc

Para aumentar o tempo de atividade em horas:

 echo $(awk '{print }' /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 }' /proc/uptime) / 3600" | bc
    
por realmoonstruck 22.08.2013 / 07:13
2

Tente este:

uptime | awk '{ print  }'

Na verdade, ele imprime a terceira palavra da linha produzida por uptime .

    
por AliNâ 22.08.2013 / 00:56
1

Uma modificação trivial para mostrar os dias:

awk '{print int(/86400)"days "int(%86400/3600)":"int((%3600)/60)":"int(%60)}' /proc/uptime
    
por xerostomus 19.04.2015 / 08:57