インターネットで時間と日付を設定するには?

インターネットで時間と日付を設定するには?

インターネットで日付を検索し、コマンドラインでコンピュータの時計を設定するにはどうすればよいですか?

答え1

日付を更新するために何もインストールしたくない場合に備えて、時間を更新する小さなコマンドを見つけました。 :)

sudo date -s "$(wget --method=HEAD -qSO- --max-redirect=0 google.com 2>&1 | sed -n 's/^ *Date: *//p')"

date実際に時間を設定する前に、次を実行して文字列を正しく理解していることを確認できます。

$ date -d "$(wget --method=HEAD -qSO- --max-redirect=0 google.com 2>&1 | sed -n 's/^ *Date: *//p')"
Mon Jan 10 11:40:46 AM CET 2022

このwgetコマンドはで置き換えることができますcurl -Is --max-redirs 0 google.com

応答が最新のときに応答がキャッシュされる可能性がある--method=HEADため(以前のヘッダーを使用)、この方法が使用されます。GETDateHEAD

答え2

最初にタイムゾーンを変更するには、次のものを使用できます。

sudo dpkg-reconfigure tzdata

最新バージョンの systemd を使用して Linux ディストリビューションのインターネットで時刻と日付を更新するには、次のようにします。

timedatectl set-ntp true

あるいは、以下の説明に従って参照NTP実装をインストールすることもできます。


参照NTPの実装

インストールする

インストールされていない場合は、ntpd次のいずれかのコマンドを使用してインストールしますntpd

  • RPMベースの場合:
    yum install ntp 
    
  • Debian ベースの場合:
    sudo apt-get install ntp
    

構成

/etc/ntp.conf設定ファイルで少なくとも次のパラメータを設定する必要があります。

server <Time Server Name or IP Address>

たとえば、/etc/ntp.confviテキストエディタを使用してファイルを開きます。

# vi /etc/ntp.conf

サーバーパラメータを見つけて、次のように設定します。

server pool.ntp.org

ファイルを保存してntpdサービスを再起動します。

# /etc/init.d/ntpd start

次のコマンドを使用して、システムクロックをNTPサーバーにすぐに同期できます。

# ntpdate pool.ntp.org

手動で日付を設定

時刻と日付を手動で設定するには、次の構文を使用します。

date --set="STRING"

たとえば、日付をに設定するには、2 Oct 2006 18:00:00rootとして次のコマンドを入力します。

# date -s "2 OCT 2006 18:00:00"

または

# date --set="2 OCT 2006 18:00:00"

次の構文を使用して形式を簡素化することもできます。

# date +%Y%m%d -s "20081128"

時間を設定するには、次の構文を使用します。

# date +%T -s "10:13:13"

どこ:

  • 10:時間(hh)
  • 13:分(mm)
  • 13:2番目(SS)

%pそのロケールに対応するAM / PMを使用できます。

# date +%T%p -s "6:10:30AM"
# date +%T%p -s "12:10:30PM"

答え3

私はこれを使用します:

sudo ntpd -qg; sudo hwclock -w

まず、ntpdに時間を設定するように指示し、次に-qを使用して停止します。また、クロックが非常に間違っている場合は、この場合でも-gを使用して調整するようにntpdに指示する必要があります。最後に、hwclock -wを使用して再起動時に変更が保持されるように、クロックがハードウェアに書き込まれます(-wは、ハードウェアクロックを現在のシステム時間に設定するために使用され、違いがあります)。

答え4

ntpdate、ntpd、またはChronyを使用してNTPサーバーに接続します。

関連情報