Linuxで現在時刻を設定する方法
以下のコマンドの出力が違うのはなぜですか?
root@vmi2115:/var# hwclock
Sun 26 Jun 2011 01:21:38 PM CEST -0.273230 seconds
root@vmi2495:/var# date
Sun Jun 26 15:21:39 CEST 2011
root@vmi2115:/var#
また、Linuxで現在時刻を変更することはできますか?
以下のコマンドの出力が違うのはなぜですか?
root@vmi2115:/var# hwclock
Sun 26 Jun 2011 01:21:38 PM CEST -0.273230 seconds
root@vmi2495:/var# date
Sun Jun 26 15:21:39 CEST 2011
root@vmi2115:/var#
また、Linuxで現在時刻を変更することはできますか?
通常は自動的に時刻を設定してもらいたいと思うでしょうし、その場合はntpd
を使って自動的に時刻を設定してもらいたいと思うでしょう。
仕様はディストリビューションによって若干異なりますが、例えばUbuntuを起動している場合は、【UbuntuでNTPを設定する】(https://help.ubuntu.com/community/UbuntuTime)のガイドがあります。それ以外の場合は、`ntpd
。例としては、次のようなものが考えられます:
date --set="23 June 1988 10:00:00"
date --set="10:00:00"
ハードウェアクロックを現在のシステム時刻に設定します。
これに関する情報は Ubuntu Official Documentation にあります。
CentOS
のタイムゾーンは、特定のタイムゾーンにシステムの日付を変更するには、/usr/share/zoneinfo/
に位置しています:
まず、既存のlocaltimeファイルのバックアップを作成します。
sudo mv /etc/localtime /etc/localtime.bak
OR
sudo ln -s /usr/share/zoneinfo/Europe/Lisbon /etc/localtime
OR
date -s "11 MAR 2006 11:11:11"
date --set="11 MAR 2015 11:11:11"
現在のシステム時刻にハードウェアクロックを設定するには:
date +%Y%m%d -s "20150311"
hwclock --systohc
OR
hwclock -w
&001
“hwclock "はハードウェア(マシン)の日付、"date "はソフトウェア(操作系)の日付です。
NTPクライアント
date -s $(wget -q -O - http://www.timeapi.org/eest/now | cut -d '+' -f 1 | tr -d : | tr -d - | tr -d T | cut -c 1-12)
eestのURLがローカルタイムゾーンの場合はこれを使用してください。
Linuxで現在の時刻を変更することはできますか?
私の場合、最初にこのコマンドを実行する必要がありました:
sudo systemctl stop systemd-timesyncd
そうでなければ、systemdはすぐに時刻をリセットしてしまいます。systemdサービスを停止した後、date
を動かしていることは期待されたように働く:
$ sudo date -s 'january 1 1971'
Fri Jan 1 00:00:00 CET 1971
$ date
Fri Jan 1 00:00:00 CET 1971
サービスが動いていた間、date -s
コマンドは働くように思えたが、date
を動かしていることは一瞬後に私に再びsystemd時間を与えるだろう。