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 を確認し、必要に応じて設定を見直しましょう。