[Armadillo:06894] Re: armadillo-420の時刻の扱いについて

Takenoshita Koyo email@hidden
2011年 3月 18日 (金) 15:20:54 JST


竹之下です。

> ここでリブートをします。
> 立ち上がった後の/var/log/messageをみると、
> <30>Mar 18 00:01:04 avahi-daemon[1252]: Service "Camera on
> armadillo420-0 [00:11:0C:11:02:85]" (/etc/avahi/services/camera.service)
> successfully established.
> <30>Mar 18 00:01:04 avahi-daemon[1252]: Service "AT Admin on
> armadillo420-0 [00:11:0C:11:02:85]"
> (/etc/avahi/services/at-admin.service) successfully established.
> <38>Mar 18 00:01:27 login[1279]: root login  on `ttymxc1'
> この様にUTC時刻になってしまっています。
> 
> ここで、syslogにtestをしてみます。
> [email@hidden (ttymxc1) ~]# logger test
> そして、/var/log/messageをみると、
> <38>Mar 18 00:01:27 login[1279]: root login  on `ttymxc1'
> <13>Mar 18 09:02:00 root: test
> この様に、JST時刻でログが吐かれます。
> 
> これだと、ログ時刻の統一性がなく、時系列で見るのに非常に不便です。
> 統一して、JST時刻にするのに良い方法はありますでしょうか?
> #デフォルトの設定でtimezoneを使っていないのが原因でしょうか?
方法としては、以下の二つの方法があります。
1. TZ 環境変数を設定して、UTC に統一する
2. /etc/localtime を設定して、JST に統一する

1. TZ 環境変数を設定して、UTC に統一する
ログインした後、logger コマンドで syslog に送ったメッセージの時刻が JST に
なっているのは、/etc/profile で TZ 環境変数を JST-9 に設定しているからです。

そのため、TZ 環境変数を UTC に設定すれば、時刻を UTC に統一できます。

例えば、
[armadillo ~]# TZ=UTC logger test
とすると、/var/log/messages に記録される時刻が、UTC となります。
恒久的な変更とするには、/etc/profile を修正すると良いでしょう。

2. /etc/localtime を設定して、JST に統一する
一方、syslogd が起動してからログインプロンプトが表示されるまでの表示が
UTC となっているのは、タイムゾーンが明示的に設定されていないためです。

<46>Mar 18 05:57:28 syslogd started: BusyBox v1.00 (2011.03.17-06:47+0000) 
<13>Mar 18 05:57:28 kernel: klogd started: BusyBox v1.00 (2011.03.17-06:47+0000) 
...
<38>Mar 18 05:57:41 login[1332]: root login  on `ttymxc1'

/etc/localtime に、タイムゾーンディレクトリ(/usr/share/zoneinfo)にあるファイル
のコピーを置いてあげると、デフォルトのタイムゾーンを指定できます。JST に指定したい
場合は、/usr/share/zoneinfo/Asia/Tokyo をコピーしてください。

例えば、Atmark Dist でユーザーランドを作っている場合は、以下のようにしてユーザー
ランドイメージを作ると、/var/log/messages に記録される時刻がすべて JST になると
思います。

[PC ~/atmark-dist]$ sudo cp /usr/share/zoneinfo/Asia/Tokyo romfs/etc/localtime

-- 
Koyo Takenoshita




armadillo メーリングリストの案内