timedatectlコマンドの使い方と活用例

—

by

in

timedatectlとは

timedatectlは、Linux の systemd が提供する時刻・タイムゾーン管理ユーティリティです。systemd-timesyncd と連携して NTP(Network Time Protocol)による時刻同期も行えます。

基本的なコマンド

最も頻繁に使うサブコマンドは以下の通りです。

  • status:現在の時刻・タイムゾーン・NTP の状態を表示
  • set-time:手動で時刻を設定
  • set-timezone:タイムゾーンを変更
  • set-ntp:NTP の有効化/無効化

例:ステータスの確認

timedatectl status

例:時刻の手動設定

timedatectl set-time "2024-08-01 12:34:56"

例:タイムゾーンの変更

timedatectl set-timezone Asia/Tokyo

主なオプションとその意味

  • –no-ask-password:対話的にパスワード入力を求めない(スクリプト実行時に便利)
  • –adjust-system-clock:システムクロックだけでなくハードウェアクロックも同期させる

NTP の有効化と無効化

NTP による自動時刻同期は以下のように制御します。

  • 有効化:
    timedatectl set-ntp true
  • 無効化:
    timedatectl set-ntp false

有効化した状態で timedatectl status を確認すると NTP synchronized: yes と表示されます。

トラブルシューティングのポイント

  • タイムゾーンが正しく設定されていない場合は timedatectl list-timezones で利用可能な一覧を確認し、正しいゾーン名を指定する。
  • NTP が同期しないときは systemctl status systemd-timesyncd や journalctl -u systemd-timesyncd でログを確認する。
  • ハードウェアクロックが UTC かローカルタイムかでずれが生じることがある。timedatectl set-local-rtc 0(UTC)または timedatectl set-local-rtc 1(ローカル)で設定を統一する。

まとめ

timedatectl はシンプルなコマンド群でありながら、時刻・タイムゾーン・NTP の一元管理が可能です。サーバーの時刻同期はセキュリティやログの正確性に直結するため、ぜひ日常的に timedatectl status を確認し、必要に応じて設定を見直しましょう。