Làm thế nào để có một cập nhật đồng hồ sử dụng giao?

Tôi đang chạy hướng dẫn một cánh TAY, dựa nhúng vào hệ thống thiếu một pin hỗ trợ XEM. Các đánh thức thời gian là một nơi nào đó trong năm 1970. Vì vậy, tôi sử dụng các GIAO dịch vụ cập nhật thời gian để thời gian hiện tại.

Tôi đã thêm dòng sau đến /etc/rc.local tập tin:

sudo ntpdate -s time.nist.gov

Tuy nhiên, sau khi khởi động, nó vẫn còn mất một vài phút cho đến khi thời gian được cập nhật, trong khoảng thời gian mà tôi không thể làm việc hiệu quả với tarmake.

Làm thế nào tôi có thể ép buộc một cập nhật đồng hồ vào bất kỳ thời điểm nào?


CẬP nhật 1: Sau (nhờ Eric, Stephan) hoạt động tốt từ dòng lệnh, nhưng không cập nhật đồng hồ khi đưa /etc/rc.local:

$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; dateThu Jan  1 00:00:58 UTC 1970 * Stopping NTP server ntpd     [ OK ]  * Starting NTP server          [ OK ] Thu Feb 14 18:52:21 UTC 2013

Tôi có làm gì sai?


CẬP nhật 2: Tôi đã cố gắng sau vài gợi ý rằng đã phản ứng với 1 bản cập nhật, nhưng không có gì có vẻ thực sự làm những công việc như yêu cầu. Đây là những gì tôi đã cố gắng:

  1. Thay thế các máy chủ us.pool.ntp.org
  2. Sử dụng con đường rõ ràng để các chương trình
  3. Bỏ những ntp dịch vụ hoàn toàn và để lại chỉ sudo ntpdate ... trong rc.local
  4. Bỏ những sudo từ trên lệnh trong rc.local

Bằng cách sử dụng trên máy vẫn bắt đầu vào năm 1970. Tuy nhiên, khi làm điều này từ dòng lệnh sau khi đăng nhập (thông qua ssh), đồng hồ được cập nhật ngay khi tôi gọi ntpdate.

Điều cuối cùng tôi làm là để bỏ đó từ rc.local và đặt một cuộc gọi đến ntpdate tại của tôi .bashrc tập tin. Điều này không cập nhật các đồng hồ như mong đợi, và tôi nhận được đúng thời điểm hiện tại, khi lệnh là có.

Tuy nhiên điều này có nghĩa là nếu các máy quay trên và không dùng được đăng nhập, thì thời gian không bao giờ được cập nhật. Tôi có thể, tất nhiên, cài đặt lại những ntp dịch vụ như vậy ít nhất đồng hồ được cập nhật trong vòng vài phút từ khởi động, nhưng sau đó chúng tôi đang trở lại xuống 1 mét.

Vậy là có một lý do tại sao đặt ntpdate lệnh trong rc.local không thực hiện nhiệm vụ yêu cầu, trong khi làm như vậy .bashrc hoạt động tốt?

Thay vì ntpdate (mà phản đối), sử dụng ntpd:

sudo service ntp stopsudo ntpd -gqsudo service ntp start

Những -gq nói với các mục tiêu trình đến đúng thời điểm bất kể bù đắp (g) và ra ngoài ngay lập tức (q) sau khi đặt thời gian.

Có lẽ những ntp dịch vụ đang chạy, đó là lý do tại sao ntpdate không thể mở được ổ cắm (cổng 123 THOẠI) và kết nối với giây.

Hãy thử từ dòng lệnh:

sudo service ntp stopsudo ntpdate -s time.nist.govsudo service ntp start

Nếu bạn muốn đặt cái này vào trong /etc/rc.local sử dụng sau:

( /etc/init.d/ntp stopuntil ping -nq -c3 8.8.8.8; do   echo "Waiting for network..."donentpdate -s time.nist.gov/etc/init.d/ntp start )&

Sử dụng tro để thiết lập thời gian ngay lập tức. Một số ví dụ từ người đàn ông của mình trang:

USAGE     sntp ntpserver.somewhere             is the simplest use of this program and can be run as an unprivileged command to check the current time and error in the local clock.     sntp -Ss -M 128 ntpserver.somewhere             With suitable privilege, run as a command or from a cron(8) job, sntp -Ss -M 128 ntpserver.somewhere will request the time from the server, and if that server reports that it is             synchronized then if the offset adjustment is less than 128 milliseconds the correction will be slewed, and if the correction is more than 128 milliseconds the correction  will             be stepped.     sntp -S ntpserver.somewhere             With suitable privilege, run as a command or from a cron(8) job, sntp -S ntpserver.somewhere will set (step) the local clock from a synchronized specified server, like the (dep‐             recated) ntpdate(8), or rdate(8) commands.

Nó không làm việc với bất kỳ mục tiêu máy chủ thời gian. Một thuận tiện danh sách các máy chủ có thể được tìm thấy trên ntppool.org.

Bạn cần ngôi đặc quyền, ví dụ:

sudo sntp -Ss -M 128 0.de.pool.ntp.org

Sử dụng timedatectl (các đơn vị dịch vụ) để thiết lập thời gian. ntp bị phản đối.

sudo systemctl restart systemd-timesyncd.service

Bạn có thể kiểm tra thời gian đã được cập nhật đọc nhật ký với journalctl -xe | tail.

Với tình trạng timedatectl status và cấu hình trong /etc/systemd/timesyncd.conf.

Tài liệu tham khảo

Như những người khác đã chỉ ra một giải pháp tốt nhất là hướng dẫn ntpd để bỏ qua sự hoảng loạn ngưỡng, đó là 1000 giây mặc định. Bạn có thể cấu hình sự hoảng loạn ngưỡng tại một trong hai cách:

  • chỉnh sửa /etc/default/ntp và đảm bảo rằng các -g lựa chọn là hiện tại.
  • sửa /etc/mục tiêu.tập tin và địa điểm tinker panic 0 ở phía trên

Vì vậy, đến nay, đây là cơ bản là những gì người khác có đề nghị tuy nhiên, đó là một bước nữa, tôi nghĩ cậu nên đi. Cài đặt giả-hwclock chương trình:

# apt-get install fake-hwclockfake-hwclock: Save/restore system clock on machines without working RTC hardware Some machines don't have a working realtime clock (RTC) unit, or no driver for the hardware that does exist. fake-hwclock is a simple set of scripts to save the kernel's current clock periodically (including at shutdown) and restore it at boot so that the system clock keeps at least close to realtime. This will stop some of the problems that may be caused by a system believing it has travelled in time back to 1970, such as needing to perform filesystem checks at every boot. On top of this, use of NTP is still recommended to deal with the fake clock "drifting" while the hardware is halted or rebooting.

Với giả-hwclock cài đặt máy của bạn sẽ không bắt đầu nghĩ nó là 1970 tất cả một lần nữa. Khi máy khởi động nó sẽ thiết lập đồng hồ của nó để dấu thời gian giả-hwclock đã viết trong suốt khởi động lại/tắt. Điều này có nghĩa là bạn có thể có một hơi đúng đồng hồ trong trường hợp đó là vấn đề mạng khi bạn khởi động.

ntpdate là một chương trình khác nhau từ mạng dameon. NTPDate có lẽ erroring ra trên khởi động bởi vì ntpd đang chạy trên đó ổ cắm.

Từ dòng lệnh, chạy đi

# sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start

Bạn cũng có thể gỡ bỏ ntpd tất cả cùng nhau (yum bỏ f) và thêm một định kỳ kịch bản để sử dụng ntpdate mỗi giờ hay như vậy.

CẬP nhật

giao dịch vụ có lẽ sẽ không có ý nghĩa giá trị cho các bạn về hệ thống này, vì vậy, bỏ đầu tiên đó.

# sudo apt-get remove ntp

Bây giờ thêm lệnh:

ntpdate -sb time.nist.gov

đến /etc/rclocal

Khởi động lại. Nên tốt tại thời điểm đó.

rdate -s tick.greyware.com

nếu tất cả các bạn muốn làm được đặt đồng hồ một lần, đơn giản

Lưu ý rằng một số hiện tại Ubuntu dựa trên hệ thống thậm chí không sử dụng các GIAO dịch vụ mặc định ngay bây giờ. Tôi dẫn xuất 19 (Ubuntu 18.04) máy thời gian được giữ bởi systemd-timesyncd.

Vì vậy, để có được một thời gian ngày sau khi nó đã bị mất sync, tôi chỉ cần chạy

sudo systemctl restart systemd-timesyncd

Kể từ khi 15.04 Ubuntu sử dụng lệnh của bạn. Vì vậy, hệ thống quan trọng như thời gian đang quản lý thông qua hợp. Để tìm những dịch vụ của hệ thống là cách sử dụng một cái gì đó chạy như thế

systemctl list-unit-files | grep -E 'ntp|timesyncd'

Cho TechJS trên 16.04 dịch vụ này ntp. Cho bản thân mình trên ổ 18.04 (Bạc hà 19) dịch vụ này systemd-timesyncd. Thật thú vị, tôi đã đăng nhập vào một 16.04 chủ, tôi có sử dụng nó systemd-timesyncd cũng.

Một cách chính xác để làm điều này vào một bản / Bạc hà / Ubuntu (hoặc khác Debian hàm) hệ thống là có dòng

NTPD_OPTS="-g"

trong các tập tin

/etc/default/ntp

Việc này đảm bảo rằng khi ntpd là bắt đầu từ /etc sao.d/giao kịch bản, nó chạy với "-g" lựa chọn, tức

 start-stop-daemon --start --quiet --oknodo --pidfile /var/run/ntpd.pid --startas /usr/sbin/ntpd -- -p /var/run/ntpd.pid -g -u 124:128

để cho phép ntpd để sửa chữa hệ thống thời gian khi nó được hơn 1000 các ra, ví dụ như khi hệ thống thời gian là tháng 1 năm 1970 khởi động bởi vì không có phần cứng XEM.

tlsdate bộ địa phương thức an toàn kết nối với BẬT máy tính và lấy cái điều khiển thời gian ra khỏi bắt tay an toàn. Không giống nhưntpdate, tlsdate sử dụng điều khiển ví dụ kết nối với một điều khiển từ xa wifi với BÊN kích hoạt và dịch vụ cung cấp một số bảo vệ chống lại kẻ thù mà cố gắng để nuôi bạn độc hại thông tin thời gian.

$ tlsdate -V -n -H encrypted.google.com

từ ở đây:
ntpdate -s ntp.ubuntu.com

thông báo các ‘b’ cờ trên ntpdate. Từ ntpdate là người đàn ông trang: "Lực lượng thời gian để được bước sử dụng settimeofday() hệ thống gọi điện, chứ không phải là slewed (định) sử dụng adjtime() hệ thống gọi. Lựa chọn này nên được sử dụng khi được gọi là từ một khởi động tập tin vào lúc khởi động."Nhiều câu trả lời dưới đây, đừng đưa nó, và điều đó có lẽ là một phần của các vấn đề trong công việc. Xem xét rằng các ‘B’ cờ nó nói rằng hiệu hơn 128 ms có thể mất hàng giờ để đồng bộ hóa muốn ‘giết’ cơ chế

timedatectl, nhưng How to update system time behind a proxy? - Ask Ubuntu

Không có nhu cầu sử dụng bạn trong /etc máy bay.địa các tập tin … họ đang chạy chạy như là gốc.