web-dev-qa-db-ja.com

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の現在時刻を変更できますか?

64
dail

通常は時間を自動的に設定する必要があります。その場合は、自動的に時間を設定するために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
34

ntpdate ntp.ubuntu.comだけで、すべて問題ありません。

これに関するより多くの情報が Ubuntu Official Documentation にあります

21

別の一般的な、非常に厄介な問題は、間違ったタイムゾーンが選択されたときです。

出力された日付でタイムゾーンを確認します。

$ date

Fre Aug 23 18:47:04 UTC 2013

タイムゾーンの種類を修正するには

$ Sudo tzselect

対応する番号の正しい地域を選択します。

2番目のタスクは正しい時間を設定することです。

$ Sudo date --set = "18:37:00"

または、単にHW-Clockから時間を取ってください。

$ Sudo hwclock --hctosys

13
phylib

システム日付を特定のタイムゾーンに変更するために、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
3
Pedro Lobito

「hwclock」はハードウェア(マシン)の日付、「date」はソフトウェア(オペレーティングシステム)の日付です。

ハードウェアの日付を変更する場合:

hwclock --set --date="2013-7-31 09:30"

ソフトウェアの日付を変更する場合

date --set "2013-7-31 09:30"
1
David Motilla

これを試して:

date +%T -s "12:21:00"

または

date +%T%p -s "12:22:20AM"
date +%T%p -s "12:23:30PM"
1
Zeroows

systemctl restart ntpdは私のために働きます。これはRHELおよびCENTOS OSに適用されます。

0
Promod

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の時間がまた表示されます。

0
Luc

dateは、CPUが起動した瞬間から与えられた時間に与えられた内部ハードウェアクロックを加えた時間として与えられた時間を返し、hwclockは内部クロックが持っている時間を与えます。

CPUベースの時間は、マシンが起動している時間が長くなるほどドリフトする傾向があります。これが、hwclock --hctosysコマンドの存在の背後にある理由です。また、インターネット上で国際的に時間を調整するために使用されるネットワークプロトコルタイムの使用の背後にある理由の1つです。

0
RedComet

システムクロックのタイムゾーンを設定するには、次の手順に従います。

cp /usr/share/zoneinfo/America/La_Paz /etc/localtime
0
spacebiker

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...などを使うことができます

0
Ivaylo Mutafov