who -b date format varia estranhamente

1

Eu corro who -b para obter a data da última reinicialização. Ele retorna 2013-10-29 14:55. Agora correu por um daemon (estou enviando esta data para um servidor) que retorna 29 de outubro 14:55. Mas algumas outras vezes (antes da última reinicialização em 29 de outubro) retornaria algo como 2013-10-24 13:17 de forma consistente.

Primeiro conjunto de perguntas: O que em um ambiente controla isso? Por que é diferente do usuário do sudo e do daemon? E por que mudou entre 2 reinicializações?

Outra questão: Existe uma maneira de ter esta data com o formato 2013-10-29 14:55? Eu poderia formatá-lo, mas o ano está faltando. (por exemplo, você sabe que bandeira deve passar quem -b)?

    
por Thomas 04.11.2013 / 10:34

1 resposta

2

Isso provavelmente se deve a uma alteração de localidade:

$ locale | grep LC_TIME
LC_TIME="en_GB.UTF-8"
$ who -b
         system boot  2013-11-04 10:04
$ LC_TIME=C who -b
         system boot  Nov  4 10:04

Talvez sua localidade tenha sido alterada e não tenha entrado em vigor até a reinicialização (talvez você não tenha atualizado seu ambiente após a alteração). Quanto ao motivo pelo qual ele parece diferente em um daemon, ele provavelmente tem um valor diferente para LC_TIME ou nenhum valor.

Você pode obter a data usando algo assim (opcionalmente, substituindo en_GB.UTF-8 por qualquer localidade que resulte nesse formato, já que você pode não ter essa localidade em seu sistema):

$ LC_TIME=en_GB.UTF-8 who -b | awk '{ print $3 " " $4 }'
2013-11-04 10:04
    
por 04.11.2013 / 10:41

Tags