Làm cách nào để truy xuất ngày từ Internet và đặt đồng hồ trên máy tính của tôi, từ dòng lệnh?
switch
ruby trong khi bạn có thể đặt trực tiếp ngày qua date -s
(như được hiển thị trong trang chủ) hoặc sử dụng bất kỳ lệnh nào được mô tả bên dưới ...
Làm cách nào để truy xuất ngày từ Internet và đặt đồng hồ trên máy tính của tôi, từ dòng lệnh?
switch
ruby trong khi bạn có thể đặt trực tiếp ngày qua date -s
(như được hiển thị trong trang chủ) hoặc sử dụng bất kỳ lệnh nào được mô tả bên dưới ...
Câu trả lời:
Bạn có thể dùng :
sudo dpkg-reconfigure tzdata
để cấu hình múi giờ của bạn.
Để cập nhật thời gian và ngày từ internet, hãy sử dụng như sau:
Nếu ntpd không được cài đặt, hãy sử dụng bất kỳ một trong các lệnh sau để cài đặt ntpd:
Đối với RPM dựa trên:
yum install ntp
Dành cho Debian dựa trên:
sudo apt-get install ntp
Ít nhất bạn nên đặt tham số sau trong tệp cấu hình /etc/ntp.conf: máy chủ
Ví dụ: mở tệp /etc/ntp.conf bằng trình soạn thảo văn bản vi:
# vi /etc/ntp.conf
Xác định vị trí tham số máy chủ và thiết lập nó như sau:
server pool.ntp.org
Lưu tệp và khởi động lại dịch vụ ntpd:
# /etc/init.d/ntpd start
Bạn có thể đồng bộ hóa đồng hồ hệ thống với máy chủ NTP ngay lập tức bằng lệnh sau:
# ntpdate pool.ntp.org
* Để cài đặt thời gian và ngày theo cách thủ công, hãy sử dụng cú pháp sau:
date --set="STRING"
Ví dụ: đặt dữ liệu mới thành ngày 2 tháng 10 năm 2006 18:00:00, nhập lệnh sau với tư cách người dùng root:
# date -s "2 OCT 2006 18:00:00"
HOẶC LÀ
# date --set="2 OCT 2006 18:00:00"
Bạn cũng có thể đơn giản hóa định dạng bằng cú pháp sau:
# date +%Y%m%d -s "20081128"
Để đặt thời gian, hãy sử dụng cú pháp sau:
# date +%T -s "10:13:13"
Ở đâu,
10: Giờ (hh) 13: Phút (mm) 13: Thứ hai (ss)
Sử dụng% p locale tương đương với AM hoặc PM, nhập:
# date +%T%p -s "6:10:30AM"
# date +%T%p -s "12:10:30PM"
from the internet
từ tiêu đề của OP vào bất cứ nơi nào.
Một mã nhỏ tôi tìm thấy để cập nhật thời gian của bạn trong trường hợp bạn không muốn cài đặt bất cứ thứ gì chỉ để cập nhật ngày. :)
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
google.in
để có được thời gian hiện tại cho múi giờ của mình (ẤN ĐỘ).
Z
chỉ ra rằng thời gian được đưa ra theo múi giờ zulu, do đó không cần thao tác múi giờ đặc biệt nếu múi giờ máy tính được đặt chính xác.
Tôi sử dụng cái này:
sudo ntpd -qg; sudo hwclock -w
đầu tiên hãy nói với ntpd chỉ đặt thời gian và dừng lại sau đó với -q. Ngoài ra, trong trường hợp đồng hồ của bạn có lỗi lớn, chúng ta cần nói với ntpd cũng điều chỉnh trong trường hợp đó với -g. Cuối cùng, ghi đồng hồ vào phần cứng để bảo toàn các thay đổi khi khởi động lại với hwclock -w (-w để đặt hardwareclock theo thời gian hệ thống hiện tại, có một sự khác biệt).
Sử dụng ntpdate, ntpd hoặc Chrony để kết nối với máy chủ NTP.
Một số các bản phân phối được vận chuyển rdate cho mục đích đó. Cách sử dụng cơ bản:
# just query
bash-4.2$ rdate pool.ntp.org
rdate: [pool.ntp.org] Wed Jun 12 11:05:40 2013
# set system time
bash-4.2$ rdate -s pool.ntp.org
pool.ntp.org
bây giờ từ chối kết nối từ rdate
. time.nist.gov
công trinh. Ngoài ra, một khi bạn đã đặt thời gian hệ thống, bạn cũng nên đặt đồng hồ phần cứng bằng cách chạy hwclock -w
để đặt thời gian hệ thống. Sau đó, bạn có thể xác minh nó là chính xác bằng cách chạyhwclock -r
Sau một số nghiên cứu, tôi đã kết thúc với điều này. Tôi cũng đã áp dụng nó cho máy chủ của riêng tôi:
sudo apt-get install ntp
sudo dpkg-reconfigure ntp
ntpq -p
Nếu lệnh cuối cùng hiển thị một danh sách máy chủ hợp lệ, bạn tốt để đi. Lệnh sẽ chạy một tập hợp các thuật toán khá phức tạp, nó sẽ lặp đi lặp lại đồng hồ của bạn, trong số những thứ khác, và bù cho chúng. Bạn sẽ kết thúc với một chiếc đồng hồ khá chính xác ngay cả khi bạn mất kết nối với các máy chủ NTP. Tuy nhiên, lệnh không cần vài phút để bắt đầu.
Để tìm "đồng nghiệp" (máy chủ bạn có thể truy vấn) bạn có thể sử dụng ntpq -p
.
Nếu bạn đã có dịch vụ NTP đang chạy, bạn phải dừng dịch vụ này trước khi cập nhật thủ công, ví dụ như sử dụng sudo service ntp stop
.
Bây giờ bạn có thể truy vấn một đồng nghiệp, ví dụ bằng cách sử dụng sudo ntpdate "peer"
.
Sử dụng rdate công cụ như đề xuất trong manatwork 's câu trả lời, nhưng với giao thức SNTP -n
và IPv4 -4
tùy chọn trên:
# just print synced time, not set
rdate -n -4 -p time-a.nist.gov
# print and set synced time
sudo rdate -n -4 time-a.nist.gov
Công cụ này có thể được cài đặt trên Debian theo cách này:
sudo apt-get install rdate
Ngoài câu trả lời của Tushar , tôi cũng phải thực hiện apt-get install ntpdate
trên Ubuntu 14.04.
Đăng bài như câu trả lời vì danh tiếng không đủ để bình luận.
Tôi cũng đang tìm kiếm một cách không ntp / ntpd để đặt lại đồng hồ theo định kỳ. Tôi thích phân tích cú pháp tiêu đề google.com nhưng thấy nó không hoạt động trên Ubuntu. Tôi nghĩ rằng điều này cũng sẽ làm việc trên một Raspberry Pi.
sudo date +"%d %b %Y %T %Z" -s "$(wget -qSO- --max-redirect=0 http://google.com 2>&1 | grep '^ Date:' | cut -d' ' -f 5-)"
Cũng là một thay thế bằng cách sử dụng curl thay vì wget.
sudo date +"%d %b %Y %T %Z" -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-)"
Đã thử nghiệm trên PI với Mạng di động và kết quả tương tự nhau:
Using host & wget -- RCV: 1324 bytes SND: 581 bytes
Using host & curl -- RCV: 1318 bytes SND: 567 bytes
Lưu ý Tôi sử dụng máy chủ để phân giải google.com thành địa chỉ IP để tôi chỉ có thể mở IP đó trong thời gian của lệnh này bằng iptables.