本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、時刻を表示/設定する「timedatectl」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、時刻やタイムゾーンを表示/設定する「timedatectl」コマンドです。
「timedatectl」は時刻やタイムゾーンを表示したり、設定したりするコマンドです(※1)。NTP(Network Time Protocol)を使用するかどうかなども設定できます(※2)。GNOMEデスクトップ環境の「設定」画面では「日付と時刻」に相当します。
「date」コマンド(連載第77回)ではシステムクロックの表示と変更だけに対応していますが、timedatectlはRTC(Real Time Clock)も変更できます。
※1 世界の時刻の基準は複数の原子時計で定まる「国際原子時(International Atomic Time)」だ。国際原子時に地球の自転速度の遅れの影響をうるう秒として加味したものが「協定世界時(Universal Time Coordinated)」。これにタイムゾーンを当てはめた時刻が日本標準時などの「地方時(Local Time)」だ。
※2 Linuxシステムでは3種類の時刻を考える。マザーボード上のICの機能であるRTCが内蔵する時刻、システムクロック、協定世界時と同期するNTPサーバが保持する時刻だ。最も単純な設定ではLinuxの起動時にRTCの内容が読み出されてシステムクロックの値になる。timedatectlコマンドの内蔵コマンドを使ったり、オプションを指定したりすることで、それぞれを独立に設定できる。NTPサーバとの同期を有効にすると、定期的にシステムクロックが更新される。
timedatectl [オプション] コマンド
※[ ]は省略可能な引数を示しています。
短いオプション | 長いオプション | 意味 |
---|---|---|
--adjust-system-clock | RTCの設定を変更したとき、それに合わせてシステムクロックを調整する | |
-P | --privileged | 実行前に権限を取得する(※3) |
--no-ask-password | パスワードプロンプトを表示しない | |
-H ホスト名 | --host=ホスト名 | リモートホストを設定する(ユーザー名が必要な場合は「-H ユーザー名@ホスト名」のように指定する) |
--no-pager | 「list-timezones」コマンドでタイムゾーンを一覧表示する際に、(moreコマンドのような)ページャーを使用しない | |
※3 Ubuntu 18.04 LTSでは無効。
コマンド書式 | 意味 |
---|---|
status | 現在の時刻と設定を表示する(デフォルト) |
set-time 時刻 | システムの時刻とRTCを設定する |
set-timezone タイムゾーン名 | タイムゾーンを設定する |
list-timezones | 使用できるタイムゾーンを一覧表示する |
set-local-rtc 設定 | RTCを使用するかどうかを1または0で指定する(yes/no、true/falseも使用可能) |
set-ntp 設定 | NTPを使用するかどうかを1または0で指定する(yes/no、true/falseも使用可能、※4) |
※4 GNOMEの「設定」画面から選択できる「日付と時刻」画面では、「ネットワーク時刻」(Ubuntu 18.04 LTSでは「自動日時設定」)で設定する。
「timedatectl」で現在のタイムゾーンおよび現在の時刻や設定を表示します(画面1)。画面1にある主な内容は次の通りです。
項目 | 意味 |
---|---|
Local time | タイムゾーンに従った現在の日時 |
Universal time | 協定世界時による現在の日時 |
Timezone | タイムゾーン |
NTP enabled | NTPを使用するかどうか(yes/no) |
NTP synchronized | NTPで同期しているかどうか(yes/no) |
RTC in local TZ | RTCのタイムゾーン(使用しない場合は「no」) |
DST active | 夏時間が有効かどうか(夏時間がない場所の場合は「n/a」) |
timedatectl
(現在の時刻や設定を表示する)
「timedatectl set-timezone タイムゾーン名」でタイムゾーンを設定します。例えば日本時間であれば「timedatectl set-timezone Asia/Tokyo」と指定します。実行にはroot権限が必要です(画面2、※5)。
※5 GNOMEの端末で実行している場合、一般ユーザーで実行するとパスワード入力を促すメッセージが表示されるので、実行しているユーザーのパスワードを入力する。
使用できるタイムゾーンは「timedatectl list-timezones」で確認できます。400行以上あるため、「tzselect」コマンドで対話的に確認するとよいでしょう(画面3〜6)。
timedatectl set-timezone タイムゾーン名
(タイムゾーンを設定する)
tzselect
(タイムゾーンを確認する)(画面3)
timedatectlでタイムゾーンを変更すると、「/etc/localtime」の内容が更新されます(画面7)。このファイルは、通常、「/usr/share/zoneinfo」下にある設定ファイルへのシンボリックリンクになっています。
タイムゾーンを一時的に変更したい場合は、環境変数TZでタイムゾーンを設定します。この場合、「/etc/localtime」は変わりません(画面8)。
西村 めぐみ(にしむら めぐみ)
元々はDOSユーザーで「DOS版UNIX-like tools」を愛用。ソフトハウスに勤務し生産管理のパッケージソフトウェアの開発およびサポート業務を担当、その後ライターになる。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。地方自治体の在宅就業支援事業にてMicrosoft Officeの教材作成およびeラーニング指導を担当。会社などの"PCヘルパー"やピンポイント研修なども行っている。
Copyright © ITmedia, Inc. All Rights Reserved.