Estou usando os 3 comandos a seguir para verificar o ponto de tempo mais recente quando meu computador é reinicializado:
last reboot
who -b
uptime
O resultado da última reinicialização é:
wtmp begins Sat Oct 9 04:49:27 2021
O resultado para quem -b é:
system boot 2018-01-11 20:52
O resultado para o tempo de atividade é:
22:49:01 up 1372 days, ...
Parece que o resultado de uptime e who -b é consistente um com o outro, mas inconsistente com o da última reinicialização.
Eu acho este post Uptime e who -b estão mostrando horários diferentes quando o sistema foi inicializado pela última vez no Linux , mas ele disse que seu uptime e who -b são inconsistentes entre si, diferente do meu caso.
No Linux, todos os três comandos usam diferentes fontes de informação por padrão.
uptime
usa as informações fornecidas pelo kernel em/proc/uptime
. Este último contém duas informações : o tempo de atividade do sistema, incluindo o tempo gasto suspenso, e o tempo gasto no processo ocioso. Esses valores são precisos.who -b
usa as informações armazenadas em/var/run/utmp
. Nos sistemas atuais, isso é realmente/run/utmp
, e só tem informações para a inicialização atual (/run
é umtmpfs
que perde seu conteúdo quando o sistema é reinicializado); mas para a inicialização atual, também é preciso.last reboot
usa as informações armazenadas em/var/log/wtmp
. As informações armazenadas lá também são geralmente precisas, mas as informações de que você precisa podem não estar mais armazenadas lá:wtmp
são alternadas em muitas configurações, geralmente mensalmente. Isso significa que se o tempo de inicialização atual do sistema for anterior ao tempo dewtmp
última rotação do sistema, as informações apresentadas serão parciais. Em particular,last reboot
acaba mostrando o último tempo de rotação, não o tempo real de inicialização do sistema. É por isso quelast
mostra a hora em quewtmp
começa: esse é o horizonte de tempo para as informações exibidas porlast
.Quando
wtmp
contém a última hora de inicialização,last reboot
mostra: