Linuxディスクトップ環境での時間設定

Linuxで時刻を合わせるには、「ntpq」コマンドや「ntpdate」コマンドを使用します。ディスクトップ環境での時刻合わせなので、NTPデーモンを起動させて、「ntpq」コマンドを使用するまでもないので、「ntpdate」コマンドを使うことにします。また、表示を日本時間に設定するためにタイムゾーンの設定も必要なので、「tzconfig」コマンドを使ったタイムゾーンの設定についてもまとめてみます。

タイムゾーンの設定

タイムゾーンを設定するには、「tzconfig」コマンドを使います。パッケージ名も同じなのでインストールしておきます。実行すると次のように表示されます。

debian:~# tzconfig
Your current time zone is set to US/Eastern
Do you want to change that? [n]: y

Please enter the number of the geographic area in which you live:


        1) Africa                       7) Australia

        2) America                      8) Europe

        3) US time zones                9) Indian Ocean

        4) Canada time zones            10) Pacific Ocean

        5) Asia                         11) Use System V style time zones

        6) Atlantic Ocean               12) None of the above


Then you will be shown a list of cities which represent the time zone
in which they are located. You should choose a city in your time zone.

Number: 5

Aden Almaty Amman Anadyr Aqtau Aqtobe Ashgabat Ashkhabad Baghdad Bahrain
Baku Bangkok Beirut Bishkek Brunei Calcutta Choibalsan Chongqing Chungking
Colombo Dacca Damascus Dhaka Dili Dubai Dushanbe Gaza Harbin Hong_Kong
Hovd Irkutsk Istanbul Jakarta Jayapura Jerusalem Kabul Kamchatka Karachi
Kashgar Katmandu Krasnoyarsk Kuala_Lumpur Kuching Kuwait Macao Macau
Magadan Makassar Manila Muscat Nicosia Novosibirsk Omsk Oral Phnom_Penh
Pontianak Pyongyang Qatar Qyzylorda Rangoon Riyadh Riyadh87 Riyadh88
Riyadh89 Saigon Sakhalin Samarkand Seoul Shanghai Singapore Taipei
Tashkent Tbilisi Tehran Tel_Aviv Thimbu Thimphu Tokyo Ujung_Pandang
Ulaanbaatar Ulan_Bator Urumqi Vientiane Vladivostok Yakutsk Yekaterinburg
Yerevan

Please enter the name of one of these cities or zones
You just need to type enough letters to resolve ambiguities
Press Enter to view all of them again
Name: [] Tokyo
Your default time zone is set to 'Asia/Tokyo'.
Local time is now:      2008年  7月  9日 水曜日 13:44:05 JST.
Universal Time is now:  2008年  7月  9日 水曜日 04:44:05 UTC.

対話式で設定していくのですが、入力箇所は、3箇所です。「Do you want to change that? [n]:」と聞かれ、「y」と入力、「Number:」と聞かれ、Asiaの「5」を入力、「Name:[]」と聞かれ、「Tokyo」と入力するところです。これでタイムゾーンの設定が「東京」となり、時刻の表示が正常になります。

「ntpdate」コマンドで時刻合わせ

時刻をNTPサーバと同期するために「ntpdate」コマンドを使います。このコマンドには、stepモードとslewモードの2種類のモードがあります。stepモードは、問合せたサーバの時刻にすぐに合わせるモードで、slewモードは、システムの時刻の進み方を調整して少しずつ時刻を合わせるモードです。サーバなどのログ情報で、突然時間が変わるとよくない場合は、slewモードを使うのですが、時刻のずれが大きいと時刻が合うまで何日もかかる場合があります。モードの設定は、オプションで指定するのですが、オプションを指定しない場合は、128ミリ秒以内のずれだとstepモードでそれ以上だとslewモードで動きます。コマンドの構文は、次のとおり。

ntpdate [オプション] NTPサーバ

NTPサーバは、ホスト名でもIPアドレス指定できます。また、複数のNTPサーバを指定する場合は、スペースで区切ります。よく使うオプションは、次のとおりです。

-b
時刻のずれに関係なくstepモードで実行します。
-B
時刻のずれに関係なくslewモードで実行します。
-s
実行結果をsyslogに出力します。

Debian/etchでは、起動時に「/etc/network/if-up.d/ntpdate」というシェルスクリプトが実行されます。このシェルの中で、さらに「/usr/sbin/ntpdate-debian」というシェルクリプトが実行されます。このシェルスクリプトの設定ファイルは、「/etc/default/ntpdate」で以下ように設定します。

# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.

# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
#NTPDATE_USE_NTP_CONF=yes
NTPDATE_USE_NTP_CONF=no

# List of NTP servers to use  (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"

# Additional options to pass to ntpdate
#NTPOPTIONS=""
NTPOPTIONS="-b -s"

「NTPDATE_USE_NTP_CONF」にnoを設定します。ntpdの設定ファイルがない場合、この設定をしないと、「NTPSERVERS」で設定されているntpサーバを使用しません。「NTPOPTIONS」には、実行時のntpdateコマンドのオプションを指定します。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする