以下のコマンドの出力が異なるのはなぜですか?
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をセットアップする ガイドがあります 。それ以外の場合は、Google ntpd <distribution-name>
だけで、おそらく見つけることができるでしょう。
手動で設定したい場合は、date --set="<date string>"
を使用できます。この例は次のとおりです。
date --set="23 June 1988 10:00:00"
date --set="10:00:00"
ハードウェアクロックを現在のシステム時刻に設定します。
# hwclock --systohc
ハードウェアクロックからシステム時刻を設定します。
# hwclock --hctosys
ntpdate ntp.ubuntu.com
だけで、すべて問題ありません。
これに関するより多くの情報が Ubuntu Official Documentation にあります
別の一般的な、非常に厄介な問題は、間違ったタイムゾーンが選択されたときです。
出力された日付でタイムゾーンを確認します。
$ date
Fre Aug 23 18:47:04 UTC 2013
タイムゾーンの種類を修正するには
$ Sudo tzselect
対応する番号の正しい地域を選択します。
2番目のタスクは正しい時間を設定することです。
$ Sudo date --set = "18:37:00"
または、単にHW-Clockから時間を取ってください。
$ Sudo hwclock --hctosys
システム日付を特定のタイムゾーンに変更するために、CentOS
タイムゾーンは/usr/share/zoneinfo/
にあります。
まず、既存のlocaltimeファイルのバックアップを取ります。
Sudo mv /etc/localtime /etc/localtime.bak
次に、リンクを作成します。
Sudo ln -s /usr/share/zoneinfo/Europe/Lisbon /etc/localtime
date
と入力して、新しいシステムの日付を確認します。
Linuxシステムの日付を手動で調整するには、次のように入力します。
date -s "11 MAR 2006 11:11:11"
OR
date --set="11 MAR 2015 11:11:11"
OR
date +%Y%m%d -s "20150311"
ハードウェアクロックを現在のシステム時間に設定するには、次の手順を実行します。
hwclock --systohc
OR
hwclock -w
「hwclock」はハードウェア(マシン)の日付、「date」はソフトウェア(オペレーティングシステム)の日付です。
ハードウェアの日付を変更する場合:
hwclock --set --date="2013-7-31 09:30"
ソフトウェアの日付を変更する場合
date --set "2013-7-31 09:30"
これを試して:
date +%T -s "12:21:00"
または
date +%T%p -s "12:22:20AM"
date +%T%p -s "12:23:30PM"
systemctl restart ntpd
は私のために働きます。これはRHELおよびCENTOS OSに適用されます。
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の時間がまた表示されます。
date
は、CPUが起動した瞬間から与えられた時間に与えられた内部ハードウェアクロックを加えた時間として与えられた時間を返し、hwclock
は内部クロックが持っている時間を与えます。
CPUベースの時間は、マシンが起動している時間が長くなるほどドリフトする傾向があります。これが、hwclock --hctosys
コマンドの存在の背後にある理由です。また、インターネット上で国際的に時間を調整するために使用されるネットワークプロトコルタイムの使用の背後にある理由の1つです。
システムクロックのタイムゾーンを設定するには、次の手順に従います。
cp /usr/share/zoneinfo/America/La_Paz /etc/localtime
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)
URLの最も新しいはあなたのローカルタイムゾーンです
あなたはutc...などを使うことができます