CORY's twilight zone > 98備忘録 (tips)[an error occurred while processing this directive] > NetBSD で cron の動作時間がずれる

NetBSD で cron の動作時間がずれる

since 2010.01.18 / CORY

NetBSD では、localtime の設定に加え crontab にタイムゾーンを設定しておかないと、動作時間がずれてしまう(UTCで動作する)ようです。その対策の仕方を書いておきます。

以下の手順は NetBSD 4.0 (sandpoint) の例。

目次

標準で使いたいタイムゾーンを設定しておく crontab の書き換え パソコン等の時刻をどうするか

標準で使いたいタイムゾーンを設定しておく

cron の動作に直接関係ありませんが、NetBSD では初期状態で標準時間 (UTC) になっていますので、専ら日本国内で使うシステムであれば日本時間 (JST) に変更しておきましょう。 なお、以下の作業は root になってから行います。

# ls -l /etc/localtime
lrwxr-xr-x   1 root  wheel         23 Dec 16  2007 /etc/localtime -> /usr/share/zoneinfo/UTC
# ln -fs /usr/share/zoneinfo/Japan /etc/localtime

また、ついでに下記のようにしておくと後々好都合かもしれません。

# ln -s /usr/share/zoneinfo/Japan /usr/share/zoneinfo/JST
# ln -s /usr/share/zoneinfo/Japan /usr/share/zoneinfo/JST-9

crontab の書き換え

root であればテキストエディタで /etc/crontab を開き、他のユーザであれば crontab -e でエディタを起動して、

CRON_TZ="Japan"

と書き足します。 root で書き換えた場合はさらに、既に起動している cron を再起動。

# ps ax | grep cron
  591 ?      Is    0:07.46 /usr/sbin/cron
15545 ttyp0  R+    0:00.00 grep cron
# kill -HUP 591

パソコン等の時刻をどうするか

NetBSD では、特に何もしなければ、システムが動作するパソコン等の内蔵時計を UTC で管理します。NetBSD のみが稼働するシステムであれば問題はありませんが、他の OS を共用する場合などは、内蔵時計を日本時間にしておきたい場合があるでしょう。 そうした場合は、root になって下記のように設定しておきます。

# echo rtclocaltime=YES >> /etc/rc.conf
# sh /etc/rc.d/rtclocaltime restart

参考:The NetBSD Guide > 5. The first steps on NetBSD > 5.9. System time

改版履歴

2010.01.18
初版

更新日 : 2010年01月18日 (3577)

CORY's twilight zone > 98備忘録 (tips)[an error occurred while processing this directive] > NetBSD で cron の動作時間がずれる


« 短絡線 »
[ CORY's twilight zone | PC-98, FreeBSD(98), Mac OS X, Android | 鉄道・街 | 自然 | flickr | twitter (log) | YouTube | Contact ]

Copyright © 1996-2024 CORY / Kimagurenote, All rights reserved.