who -b 날짜 형식이 이상하게 변경됩니다.

who -b 날짜 형식이 이상하게 변경됩니다.

who -b마지막 재부팅 날짜를 얻기 위해 달렸습니다 . 2013년 10월 29일 14시 55분에 복귀했습니다. 이제 데몬에 의해 실행됩니다(이 날짜를 서버에 보냅니다). 10월 29일 14시 55분을 반환합니다. 그러나 다른 경우(10월 29일 마지막 재부팅 전)에는 항상 2013-10-24 13:17과 같은 내용이 반환됩니다.

첫 번째 질문 세트: 환경의 어떤 요인이 이를 제어합니까? sudo 사용자 및 데몬과 다른 이유는 무엇입니까? 재부팅 사이에 변경된 이유는 무엇입니까?

또 다른 질문: 이 날짜를 2013-10-29 14:55 형식으로 지정할 수 있는 방법이 있나요? 포맷할 수 있지만 연도가 누락되었습니다. (즉, who -b에게 어떤 플래그를 전달할지 알고 있습니까?)

답변1

이는 로케일 변경으로 인한 것일 수 있습니다.

$ 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

로케일이 변경되어 재부팅할 때까지 적용되지 않았을 수도 있습니다(변경 후 환경을 업데이트하지 않았을 수도 있음). 데몬에서 다르게 보이는 이유는 LC_TIME 값이 다르거나 값이 전혀 없을 수 있기 때문입니다.

다음과 같은 방법을 사용하여 날짜를 얻을 수 있습니다(선택적으로 en_GB.UTF-8시스템에 해당 로케일이 없을 수 있으므로 이 형식을 발생시키는 로케일로 대체).

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

관련 정보