通常、NTP(Network Time Protocol)を使用して自動的に時刻同期を行うべきですが、現在時刻とデータベースの保存したデータを比較して抽出するなど、一時的なテストや特別な状況のために時刻を手動で変更することがあります。
今回はLinux(Ubuntu)のtimedatectl
コマンドを使用して「Local time(ローカルタイム)」を手動で変更する方法をご紹介します。
Local timeの確認と手動設定
それでは、ローカルタイムを変更していきましょう。
ローカルタイムを手動で変更するには、sudo
権限を持つユーザーアカウントでコマンドを実行します。
現在のLocal timeを確認
ターミナルを開き、以下のコマンドを実行して現在のローカルタイムを確認します。
1 |
timedatectl |
このコマンドでは、以下のように現在の「Local time」の他に、タイムゾーンや時刻同期の状況なども出力されます。
1 2 3 4 5 6 7 |
Local time: 土 2023-12-09 12:43:09 JST Universal time: 土 2023-12-09 03:43:09 UTC RTC time: 土 2023-12-09 03:43:09 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no |
以前ご紹介した日本時間のタイムゾーンの設定はこちらから。
ローカルタイムを変更する
ローカルタイムを変更する際も同じくtimedatectl
を使用します。YYYY-MM-DD HH:MM:SS
の部分を変更して新しい日時を指定します。
1 |
timedatectl set-time 'YYYY-MM-DD HH:MM:SS' |
例えば、2023年12月9日の午後3時30分30秒に設定する場合は、以下のようにコマンドを実行します。
1 |
sudo timedatectl set-time '2023-12-09 15:30:30' |
新しいローカルタイムが設定されました。
再びtimedatectl
コマンドを実行して、変更が反映されていることを確認します。
出力に新しい日時が表示されるはずです。
設定しながらリアルタイムで確認したい場合は、ターミナルをもう1つ立ち上げて以下を試してください。
再度言いますが、通常の運用では自動的な時刻同期を使用することが推奨されます。
手動で時刻を変更した後は、システムが正確な時刻を維持するために適切な対処を行ってください。
Local timeを変更できない場合
上記の通り、ローカルタイムを変更したのに戻ってしまう場合は、時刻同期が有効になっている可能性がありますので、以下の手順を試してみてください。
時刻同期を停止する
ターミナルを開き、次のコマンドを実行して自動的な時刻同期を停止します。
1 |
systemctl stop systemd-timesyncd |
または、最近よく使われているsystemd-timesyncd
ではなく、昔からあるntp
サービスを利用している場合は以下のコマンドを実行してください。
1 |
systemctl stop ntp |
これでLocal timeが変更されるはずです。
以上、お疲れ様でした!
コメント