CORY's twilight zone > 98備忘録 (tips)[an error occurred while processing this directive] > NetBSD で cron の動作時間がずれる
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
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日 (3813)
CORY's twilight zone > 98備忘録 (tips)[an error occurred while processing this directive] > NetBSD で cron の動作時間がずれる