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