Como imprimir o tempo do kernel a partir da linha de comando?

4

Como posso converter a saída uptime em segundos desde a época para comparar com a saída dmesg ? O tempo de atividade tem a mesma resolução que o tempo de mensagem do kernel? Existe uma maneira de obter mais diretamente o tempo do kernel do que de uptime ?

➜  ~ echo "hi" > /dev/kmsg
➜  ~ dmesg | tail
[  859.214564] hi
➜  ~ uptime
10:08  up 2 days, 43 secs, 2 users, load averages: 1.69 1.64 1.54
    
por tarabyte 23.02.2016 / 19:11

2 respostas

6

Dependendo do seu sabor do Unix, o sistema de arquivos /proc pode ter um arquivo de tempo de atividade em algum lugar com as informações desejadas.

Linux> cat /proc/uptime
5899847.37 23165596.55

E a saída do comando uptime pelo mesmo tempo:

Linux> uptime
16:46:27 up 68 days, 6:51,  3 users,  load average: 0.01, 0.02, 0.05

Assim, 5899847.37 / 86400 = 68,28527 - > 68 dias, 6 horas, 51 minutos.

    
por 24.02.2016 / 23:52
2

A hora do kernel é armazenada em segundos desde 1º de janeiro de 1970. Você está olhando para ver isso como um valor? Ou você está olhando para ver qual data / hora real o kernel pensa que é?

Para o último, você pode usar apenas date -u .

Se você deseja os segundos atuais desde 1º de janeiro de 1970 (época) e tem perl instalado, pode executar perl -e 'print time()."\n";'

Você também pode usar o comando date , usando date +"%s" , que retorna as mesmas informações.

Se você quiser saber quanto tempo o sistema está ativo, o uptime é a melhor ferramenta.

    
por 23.02.2016 / 19:30

Tags