Linuxサーバーやデスクトップ環境を扱ううえで、正確な時刻設定は非常に重要です。時刻がずれているとログの解析が困難になったり、スケジュールされたタスクが意図通りに動作しなかったりと、思わぬトラブルにつながります。
そこで活躍するのが「timedatectl
」コマンドです。これは、Linuxで時刻やタイムゾーンの設定・確認を行うための強力なツールであり、特にsystemd
を使用しているディストリビューションでは標準的に利用されます。
この記事では、「timedatectl
」コマンドの基本的な使い方から、タイムゾーンの変更方法、NTPの設定まで、実践的な内容をわかりやすく解説します。
timedatectl
は、systemd
に付属する時刻管理ツールです。以下のような操作を行うことができます。
このコマンドは、systemd
を採用しているディストリビューション(Ubuntu、CentOS、RockyLinux、Debianなど)で使用可能です。timedatectl
はroot
権限が必要な操作も多いため、sudo
を使って実行するのが一般的です。
まずは、システムの現在の状態を確認してみましょう。
timedatectl
このコマンドを実行すると、以下のような情報が表示されます。
Local time: Sat 2025-04-06 10:15:42 JST
Universal time: Sat 2025-04-06 01:15:42 UTC
RTC time: Sat 2025-04-06 01:15:42
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
各項目の意味は次の通りです。
システムで利用可能なタイムゾーンを一覧表示するには以下のコマンドを使います。
timedatectl list-timezones
出力例:
Africa/Abidjan
America/New_York
Asia/Tokyo
Europe/London
...
この一覧から目的のタイムゾーンを選択します。
タイムゾーンを「Asia/Tokyo」に変更するには、以下のように実行します。
sudo timedatectl set-timezone Asia/Tokyo
変更後に再度timedatectl
を実行すると、設定が反映されていることが確認できます。
サーバーがインターネットに接続されていない、あるいは一時的にNTPを無効にして手動で時刻を設定したい場合は、次のように実行します。
sudo timedatectl set-time '2025-04-06 10:30:00'
形式は「YYYY-MM-DD HH:MM:SS」で、24時間制です。
注意: NTPが有効になっている場合は手動での時刻変更が無効化されているため、以下のようにNTPを無効にしてから設定します。
sudo timedatectl set-ntp false
sudo timedatectl set-time '2025-04-06 10:30:00'
時刻を自動で正確に保つためには、NTPの利用が欠かせません。timedatectl
を使えば、NTPの有効化・無効化も簡単です。
sudo timedatectl set-ntp true
sudo timedatectl set-ntp false
timedatectl
コマンドの出力中の「NTP service」や「System clock synchronized」を確認することで、現在の同期状況を把握できます。
Linuxには2種類の時計が存在します。
通常、OS起動時にRTCから時刻が読み込まれ、以降はSystem Clockが主導で時刻を管理します。RTCの時刻はOSがシャットダウンされるまで更新されません。
sudo timedatectl set-local-rtc 1
逆にUTCとして使う場合:
sudo timedatectl set-local-rtc 0
RTCをローカルタイムとして使うのはWindowsとのデュアルブート環境でのみ推奨されます。
timedatectl set-timezone
を実行したにも関わらずタイムゾーンが変わっていないように見える場合、次の点を確認しましょう。
timedatectl
で出力を確認したか?ネットワーク接続が遮断されていたり、systemd-timesyncd
サービスが起動していない可能性があります。以下で確認できます。
systemctl status systemd-timesyncd
必要に応じてサービスを再起動:
sudo systemctl restart systemd-timesyncd
timedatectl
コマンドは、Linuxにおける時刻・タイムゾーン管理の中核を担う非常に便利なツールです。特にサーバー運用や開発環境において、正確な時刻はログの整合性やジョブスケジューリングに直結する重要な要素です。
基本的な時刻表示からNTPの設定、タイムゾーンの変更まで、この記事で紹介した内容を活用することで、より安定したシステム運用が可能になります。
Linuxを扱うすべてのユーザーにとって、timedatectl
の基本的な理解と活用スキルは、習得しておいて損はありません。