Làm cách nào để buộc NTPD cập nhật ngày / giờ sau khi khởi động?


63

Raspberry Pi thiếu đồng hồ phần cứng. Làm cách nào để buộc NTPD cập nhật ngày / giờ ngay sau mỗi lần khởi động?

Tôi đang chạy Raspbian và Raspberry Pi được kết nối bằng cáp Ethernet .


Của tôi đã làm điều đó ra khỏi hộp. Bạn đang sử dụng disto nào?
Gerben

Raspbian Wheezy
Alessandro Da Rugna

hoạt động như nó là, bằng cách nào đó
lenik

1
@Thorb Pi được kết nối với cáp ethernet / dhcp. Đơn giản là nó không có được ngày hợp lệ sau khi khởi động, phải mất một lúc (10 đến 45 phút)
Alessandro Da Rugna

1
Nó sẽ làm điều đó tự động, sau một vài phút. Hãy chắc chắn bạn đã cài đặt nó để sử dụng đồng hồ Thạc sĩ tại Văn phòng tiêu chuẩn quốc gia, time.nist.gov như đã mô tả ở đây: raspberrypi.stackexchange.com/questions/68811/...
SDsolar

Câu trả lời:


40

Làm một apt-get install ntpdate.

ntpdatesẽ chạy khi giao diện Ethernet được đưa lên và đặt thời gian từ máy chủ ntp (xem /etc/default/ntpdate).

Nếu ntpdđang chạy, ntpdate sẽ không làm gì, tuy nhiên ntpdatesẽ chạy trước khi ntpdkhởi động - vì vậy việc này sẽ diễn ra để đặt thời gian khi khởi động miễn là có kết nối Ethernet.


chứng khoán Raspbian sẽ có tất cả điều này rồi.
xem xét

7
@scruss của tôi đã không. (2013/02/09 rasbian khò khè)
Pete Kirkham

1
Của tôi cũng không, phải làm bằng tay.
vaindil

Nếu nó được thiết lập chính xác, nó sẽ tự động thực hiện - mặc dù có thể mất vài phút.
SDsolar

Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linuxcũng không có nó.
emix

36

Nếu đồng hồ của bạn tắt, bạn có thể cần buộc ntp đồng bộ hóa bằng cách thực hiện:

sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start

1
Nó trả về lỗi "sudo: ntpd: lệnh không tìm thấy"
Pygmalion

1
ntpd phải được cài đặt để sử dụng lệnh
thaspius

3
được cài đặt, tôi không phải là không biết gì :)
Pygmalion

Bạn có thể vui lòng truy cập raspberrypi.stackexchange.com/questions/48542/ không? Tôi đã đăng chi tiết ở đó.
Pygmalion

3
Đây hoàn toàn là giải pháp cho vấn đề của tôi, nhưng tôi thấy nó chỉ là tạm thời cho đến khi tôi khởi động lại. Cuối cùng, tôi đã gặp một lỗi trong việc tắt máy rằng nó không thể cập nhật giờ vì đồng hồ hw có một ngày trong tương lai (không biết điều đó đã xảy ra như thế nào). Nhưng giải pháp là một lực lượng cập nhật hwclock. Điều đó buộc phải cập nhật lên đồng hồ phần cứng giả và sau đó khi khởi động ít nhất là gần với hiện tại để ntp có thể thực hiện công việc bình thường.
Piwaf

34

Sau khi tìm kiếm xung quanh, phương pháp này làm việc cho tôi. Như bạn đã biết, Raspberry Pi 3 có NTP bị tắt theo mặc định. Vì vậy, chỉ cần gõ này, hỗ trợ NTP sẽ được bật:

sudo timedatectl set-ntp True

Kiểm tra kết quả với timedatectl status

Trong trường hợp cảnh báo, bạn có thể phải chạy sudo timedatectl set-local-rtc truequá.


Cảm ơn, điều này cuối cùng đã giúp tôi ra ngoài, và dường như là cách thích hợp, mặc dù câu trả lời trước đó.
CharlieS

1
Đó là câu trả lời tốt nhất, đã giúp tôi rất nhiều. Bạn có thể sử dụng 'sudo' để tránh nhập mật khẩu của mình (hữu ích cho các tập lệnh chạy nó). Mục đích của lệnh giây là gì? set-local-rtc
Arad

12

Nếu bạn đặt Múi giờ trong raspi-configRaspberry Pi sẽ tự động cập nhật thời gian khởi động, nếu được kết nối với internet.

  1. sudo raspi-config
  2. Lựa chọn Internationalisation Options
  3. Lựa chọn I2 Change Timezone
  4. Chọn khu vực địa lý của bạn
  5. Chọn thành phố gần nhất của bạn
  6. Lựa chọn Finish
  7. Chọn Yesđể khởi động lại ngay bây giờ

điều này làm việc tốt với tôi
AlexG

I2 Change Timezonetùy chọn không còn tồn tại nữa
ghi

12

Xem bài đăng trên diễn đàn Thời gian không đồng bộ hóa trên Pi 3 và với dongle chính thức .

ntpd phát ra các gói IP / UDP với trường ToS được đặt thành 0xc0. Vì vậy, nó khá giống với vấn đề khác mà tôi (và nhiều người khác) gặp phải với Raspberry Pi3 khi được vận hành qua giao diện bên trong Wi-Fi.

Như một giải pháp thay thế, thêm lệnh

/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00

vào tập tin

/etc/rc.local

trước dòng thoát 0. Tiếp theo, khởi động lại và kiểm tra.


1
Tôi gặp vấn đề tương tự như tôi đã cài đặt RPi3 tôi nhận được cho XMas và bạn đã giải quyết vấn đề của tôi. Tuyệt quá !!!
jfmessier

8

Nó đã được cập nhật thời gian. Máy chủ NTPD sẽ bắt đầu ngay sau tệp hoán đổi và trước SSHD.

Kiểm tra tệp /etc/ntp.conf của bạn để đảm bảo rằng nó được cấu hình.

Nó nên liệt kê ít nhất một máy chủ. Tôi sử dụng time.nrc.ca cho máy chủ của mình.

Trang hướng dẫn sử dụng cho ntp.conf có tại đây: http://linux.die.net/man/5/ntp.conf


3

Rasberry Pi của con trai tôi sẽ không cập nhật thời gian ra khỏi hộp và sau khi thử tất cả các đề xuất ở trên, tôi có thể lấy nó để cập nhật thủ công nhưng không tự động. Cuối cùng sau khi tìm kiếm ở nơi khác mà không thành công, tôi thấy rằng tệp ntp.conf đi kèm với Rasberry Pi có các dòng sau nhận xét:

#restrict 127.0.0.1
#restrict ::1

Tôi đã sử dụng

sudo nano /etc/ntp.conf

trong thiết bị đầu cuối để chỉnh sửa tệp ntp conf bây giờ là:

# Local users may interrogate the ntp server more closely. 
restrict 127.0.0.1
restrict ::1

Điều đó đã giải quyết vấn đề cho chúng tôi. Nó cập nhật với cả WiFi và cáp ethernet. Tôi không biết liệu nó có cập nhật với WiFi mà không có thay đổi đối với RC.local được đề xuất ở trên không, vì khi tôi tìm thấy giải pháp ở trên tôi đã thực hiện thay đổi đó và tôi đã không hoàn tác nó.


2

Tôi tìm thấy timedatectlứng dụng để giúp tôi khi tôi gặp vấn đề tương tự. Nó được cài đặt theo mặc định và '--help' cung cấp một cái nhìn tổng quan khá tốt và đơn giản về cách sử dụng công cụ.

Lưu ý: đảm bảo múi giờ của bạn được đặt đúng, công cụ này cũng có thể làm được.


1

Đây là cách tiếp cận tôi đã thực hiện. Nhiều câu trả lời trong số này dường như chỉ ra những điều mà tôi không kiểm tra khi tôi nhìn vào hệ thống Raspian của mình:

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Tôi không có gì xuất hiện trong các bản ghi chỉ ra rằng nó timedatectlđang làm bất cứ điều gì, hoặc đó ntplà đồng bộ hóa trên trạng thái lên của NIC hoặc NTPD thậm chí đã được cài đặt / định cấu hình.

Cuối cùng, tôi chỉ thêm nó vào /etc/rc.local:

$ cat /etc/rc.local
logger "Beginning force syncing NTP..."
service ntp stop
ntpd -gq
service ntp start
logger "Finished force syncing NTP..."

Và cài đặt ntp:

$ sudo apt-get install ntp

Kết quả nào trong việc này /var/log/syslog:

Aug  5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd.
Aug  5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19)
Aug  5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates
Aug  5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated)
Aug  5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd.
Aug  5 09:10:21 pi-hole ntpd[674]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug  5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq
Aug  5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21)
Aug  5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates
Aug  5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16
Aug  5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4
Aug  5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164
Aug  5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147
Aug  5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119
Aug  5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s
Aug  5 09:10:49 pi-hole ntpd[853]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug  5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114
Aug  5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd.
Aug  5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21)
Aug  5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates
Aug  5 09:10:49 pi-hole root: Finished force syncing NTP...

Không hoạt động trên raspbian tối thiểu: Failed to start ntp.service: Unit ntp.service not found.Và ntpd cũng không tồn tại. Pi cuối cùng chắc chắn đạt được thời gian. (Tôi đang xem xét điều này vì các lọn tóc HTTPS của tôi không thành công mà không -k khi chạy trước đó)
Steven Lu

@StevenLu - Tôi cũng sẽ cập nhật A'er để bao gồm cả cài đặt ntp.
slm

@StevenLu -apt-get install ntp
slm

1

Bạn không cần sử dụng ntp để giải quyết vấn đề. Có một tập lệnh đọc ngày từ máy chủ và bạn chỉ cần đặt ngày là kết quả của tập lệnh đó (Raspberry Pi của bạn cần được kết nối với internet). Sau đó, bạn cần chạy lệnh đó khi khởi động.

Bước 1: Lấy ngày từ máy chủ.

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

Bước2: Chạy lệnh khi khởi động bằng cách thêm nó vào tệp /etc/rc.local(Hoạt động trên Ubuntu 16.04).

sudo gedit /etc/rc.local

TÍN DỤNG:

1- https://askubfox.com/a/655528/572294

2- https://askubfox.com/a/1199/572294


0

Tôi sử dụng như sau trên hình ảnh mặc định để đồng bộ hóa thời gian mà không cần cài đặt các gói bổ sung:

timedatectl set-local-rtc 0
timedatectl set-ntp 1
timedatectl status
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.