Lệnh cập nhật thời gian và ngày từ internet là gì


132

Lệnh cập nhật thời gian và ngày từ Internet là gì? Có ứng dụng nào cho phép tôi làm như vậy từ giao diện người dùng của nó chứ không phải từ shell không?


Bạn có thể xác định phiên bản Ubuntu nào bạn đang sử dụng không?
david6

1
Bạn có cần thời gian cực kỳ chính xác? (Nếu vậy, bạn cần làm quen với ntpq và chọn máy chủ thời gian). Nếu bạn chỉ muốn thời gian của mình chính xác (xấp xỉ), hãy thử: Cài đặt hệ thống >> Thời gian & ngày và kiểm tra xem ' Đặt thời gian ' được đặt thành ' Tự động từ Internet '.
david6

Nếu bạn muốn liên tục cực kỳ chính xác, cài đặt ntpd. Đây là một quá trình nhỏ chạy trong nền và điều chỉnh thời gian liên tục thay vì nổ / nhảy, nhưng nó sẽ chiếm một chút tài nguyên của bạn.
strugee


1
Câu hỏi này có tầm quan trọng hiện nay. Gần đây nó trở nên rất phức tạp: một số PC sử dụng chrony hoặc ntpd, họ luôn tìm lý do KHÔNG cập nhật thời gian (đồng hồ quá sai , thắng các vấn đề liên quan đến khởi động kép, ntp cũng có thể từ chối tin vào các nguồn đồng hồ không có Internet). Hơn nữa, nếu bạn có PC có internet, nhưng đồng hồ sai, vì bây giờ các trình duyệt và trang web buộc bạn phải sử dụng HTTPS, nó sẽ chặn vì đồng hồ của bạn sai và thậm chí bạn không thể google cách khắc phục! Sẽ thật tốt nếu có một câu trả lời giải quyết tất cả các trường hợp. "Đặt đồng hồ bằng tay" là cách đáng tin cậy nhất hiện nay ...
bct

Câu trả lời:


144

Bạn có thể làm như vậy với ví dụ sudo ntpdate time.nist.gov. Các máy chủ khác bao gồm time.windows.com, vv

http://www.pool.ntp.org/ liệt kê các máy chủ thời gian trên toàn thế giới.


5
Tôi đang gặp lỗithe NTP socket is in use, exiting
Friederbluemle

7
@friederbluemle Như đã nói trong câu trả lời này , bạn phải dừng dịch vụ ntp sudo service ntp stop. Sau đó, bạn có thể sử dụng lệnh được đề xuất trong câu trả lời và cuối cùng bạn có thể khởi động lại dịch vụ vớisudo service ntp start
Michele

Điều này hoạt động, nhưng nó không tự động cập nhật đồng hồ trên thanh tác vụ.
posfan12

4
Tôi gặp lỗi "ntpdate [15806]: không có máy chủ nào phù hợp để tìm đồng bộ hóa". Câu trả lời thứ hai bên dưới bằng cách sử dụng google.com hoạt động tốt hơn
Kim Stacks

7
ntpdate: lệnh không tìm thấy
rogerdpack

134

Đây là một mã nhỏ đẹp mà tôi tìm thấy để cập nhật thời gian của bạn trong trường hợp bạn gặp vấn đề với ntp:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

Giải pháp tốt đẹp!
Farid Rn

Rất đẹp, làm việc cho tôi.
Janderson Silva

8
Đây phải là câu trả lời được chấp nhận!
brijs

Đoạn trích này đã đi đến kho vũ khí của tôi! ;)
Dave Amit

2
Điều này là tốt, nhưng nó thường sẽ chậm hơn từ 8 đến 50 ms vì nó không đồng bộ hóa mỗi giây.
Nonny Moose

48

Kể từ năm 2018 với Ubuntu 16.04 LTS được cài đặt mới, việc chạy sudo ntpdate time.nist.govmang lại:

sudo: ntpdate: command not found

Điều này là do ( nguồn chính thức ):

ntpdateđược coi là không tán thành timedatectlvà do đó không còn được cài đặt theo mặc định.

Thay vào đó, hãy làm điều này để buộc đồng bộ hóa xảy ra ngay bây giờ:

sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

Trong trường hợp của tôi, tôi đang chạy Ubuntu trên hộp ảo và đã lưu trạng thái máy nên khi tôi khởi động lại ví dụ, nó không tự động đồng bộ hóa đồng hồ vì không có sự kiện khởi động để kích hoạt đồng bộ hóa. Vì vậy, thời gian vẫn còn hiển thị những gì lần cuối cùng tôi chạy hộp ảo.


Tôi mới nâng cấp lên bionic và nhận thấy rằng ntpdate không còn hoạt động nữa và timedatectl hoạt động với tôi.
kapad

1
Nó cũng hoạt động với tôi, trên Ubuntu 18.04.
kiamlaluno

Nếu thời gian không thay đổi, chỉ cần kiểm tra múi giờ của bạn timedatectl. Nếu nó sai, hãy xem --helpphần hướng dẫn cách thay đổi nó.
Brad Turek

1
Bắt tốt cho Hộp ảo. Tiết kiệm rất nhiều đau đầu gỡ lỗi!
Mohd Abdul Mujib

14

Chạy lệnh này trong một thiết bị đầu cuối nên thực hiện các mẹo

sudo dpkg-reconfigure tzdata

Bạn có thể thêm các múi giờ thêm vào đồ họa, tôi nghĩ, bằng cách nhấp vào đồng hồ và đi qua các tùy chọn của nó.


Múi giờ không thực sự giống như thời gian (chính xác). Nhưng, nó cũng không rõ lắm những gì Vikramjeet đang hỏi.
david6

Lệnh để cập nhật thời gian và ngày từ Internet là câu hỏi, sudo dpkg-recfigure tzdata là câu trả lời, vậy những gì mang lại? các bình luận về các múi giờ, có liên quan đến điều duy nhất tôi biết là có thể về mặt đồ họa
Jayo

Tôi giả định rằng bằng đồ họa, chúng có nghĩa là một phương pháp đồ họa (hoặc 'GUI') và KHÔNG theo địa lý (hoặc trên toàn thế giới).
david6

cũng vậy i, tôi không nhận thức được một cách để cập nhật ngày và thời gian qua mạng đồ họa , vì vậy tôi sử dụng các thiết bị đầu cuối, những gì tôi làm biết làm thế nào để làm đồ họa được thiết lập múi giờ, phần về múi giờ đã hai của tôi xu về những gì có thể được thực hiện để ảnh hưởng đến thời gian theo cách đồ họa , theo như tôi biết, tôi đã hiểu chưa?
Jayo

12

Thật dễ dàng để thiết lập từ dòng lệnh: https://help.ubfox.com/lts/serverguide/NTP.html Từ liên kết đó:

Ubuntu đi kèm với ntpdate là tiêu chuẩn và sẽ chạy nó một lần khi khởi động để thiết lập thời gian của bạn theo máy chủ NTP của Ubuntu: ntpdate -s ntp.ubuntu.com

Ví dụ về GUI ở đây https://help.ubfox.com/community/UbfoxTime#Time_Syn syncization_USE_NTP


6
Vui lòng không sử dụng liên kết đến các trang web khác. Khi họ biến mất, thông tin bạn đăng cũng vậy. Ngăn chặn 'thối liên kết' xảy ra bằng cách trả lời với nội dung của liên kết (và cung cấp tín dụng khi tín dụng đáo hạn).
Rinzwind

4

Hầu hết ở đây sẽ không hoạt động, vì ntp sẽ ghi đè cài đặt của bạn trong vài giây.

Bạn cần vô hiệu hóa NTP trước. Trên Ubuntu, nó được thực hiện như sau:

    # Disable ntp
    sudo timedatectl set-ntp 0

Sau đó, bạn có thể làm:

    # Set software clock 
    sudo date --set="2018-04-01 22:22:22"
    # Sync with hardware clock 
    sudo hwclock --systohc

3
dateFromServer=$(curl -v --silent https://google.com/ 2>&1 \
   | grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"

hoặc là

date -s `curl -I 'https://startpage.com/' 2>/dev/null | grep -i '^date:' | sed 's/^[Dd]ate: //g'`

1
Cách tiêu chuẩn để đặt ngày và giờ bằng cách kết nối với máy chủ thời gian qua ntp. Tại sao bạn sử dụng kết nối https để làm điều này?
xiota

1
//, Đôi khi thật tuyệt khi có một cách thay thế cho cách tiêu chuẩn, tôi đoán vậy.
Nathan Basan

2
ISP của tôi đã chặn máy chủ NTP của tôi
Tyler

1

Bạn cần cài đặt ntpgói. Cài đặt ngày / giờ có sẵn trong cài đặt hệ thống. Dưới đây là một số thông tin.


2
Liên kết đã chết ... Như Rinzwind đã nói "Xin vui lòng không sử dụng các liên kết đến các trang web khác. Khi chúng biến mất, thông tin bạn đã đăng. Ngăn chặn 'thối liên kết' xảy ra bằng cách trả lời với nội dung của liên kết (và cung cấp tín dụng nơi mà tín dụng đáo hạn). " Cảm ơn
Michele

1

Có ứng dụng nào cho phép tôi làm như vậy từ giao diện người dùng của nó chứ không phải từ shell không?

Tôi đang sử dụng 17.10 và có thể đi tới Cài đặt (từ menu phía trên bên phải trong Giao diện người dùng)> Chi tiết> Ngày & Giờ. Trong trường hợp của tôi, hệ thống của tôi không cập nhật từ Internet mặc dù "Ngày & giờ tự động" được đặt thành "BẬT". Tôi chỉ đơn giản thay đổi nó thành "TẮT", đợi một giây, sau đó đổi lại thành "BẬT". Nó chọn ngày và thời gian hiện tại và tôi đã tốt để đi.


0

Cảm ơn Twiglets [Dành cho Bộ định tuyến AsusWRT / Merlin]

Đây là một thay thế mà KHÔNG thiết lập ngày !!! [-s tùy chọn]. In ra 'Ngày' mà nó truy xuất & 'Ngày' được đặt để so sánh.

Trên AsusWRT / Merlin, điều kỳ lạ duy nhất là ngày lấy ra là ".... GMT" và tiện ích ngày đặt thời gian chính xác nhưng thay đổi thành "... DST" Môi trường đã đặt TZ thành "GMT"

datetext=$(curl -I 'https://1.1.1.1/' 2>/dev/null | grep "Date:" |sed 's/Date: [A-Z][a-z][a-z], //g'| sed 's/\r//') ; echo "Date Retrieved = $datetext" ; echo -n "Date set = " ; date -s "$datetext" -D'%d %b %Y %T %Z'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.