Sto*_*aft 5 ubuntu ntp time-synchronization systemd-timesyncd
我在 KVM 主机 (Lubuntu 20.04) 上遇到了一些崩溃问题,在进行故障排除时,我注意到了一些与时间相关的错误。
经过进一步调查,令我震惊的是,我发现时间没有同步。我确定它是之前设置的,我不知道它是如何取消设置的。
admin@virtland:~$ sudo timedatectl
[sudo] password for admin:
Local time: Fri 2020-07-10 09:14:14 EDT
Universal time: Fri 2020-07-10 13:14:14 UTC
RTC time: Fri 2020-07-10 13:14:14
Time zone: America/New_York (EDT, -0400)
System clock synchronized: no
NTP service: n/a
RTC in local TZ: no
admin@virtland:~$
Run Code Online (Sandbox Code Playgroud)
我找到了这个线程并尝试了最佳答案,但无济于事。 https://askubuntu.com/questions/929805/timedatectl-ntp-sync-cannot-set-to-yes
admin@virtland:~$ sudo systemctl stop ntp
admin@virtland:~$ sudo ntpd -gq
10 Jul 09:17:57 ntpd[34358]: ntpd 4.2.8p12@1.3728-o (1): Starting
10 Jul 09:17:57 ntpd[34358]: Command line: ntpd -gq
10 Jul 09:17:57 ntpd[34358]: proto: precision = 0.070 usec (-24)
10 Jul 09:17:57 ntpd[34358]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): good hash signature
10 Jul 09:17:57 ntpd[34358]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): loaded, expire=2020-12-28T00:00:00Z last=2017-01-01T00:00:00Z ofs=37
10 Jul 09:17:57 ntpd[34358]: Listen and drop on 0 v6wildcard [::]:123
10 Jul 09:17:57 ntpd[34358]: Listen and drop on 1 v4wildcard 0.0.0.0:123
10 Jul 09:17:57 ntpd[34358]: Listen normally on 2 lo 127.0.0.1:123
10 Jul 09:17:57 ntpd[34358]: Listen normally on 3 enp6s0 10.0.0.18:123
10 Jul 09:17:57 ntpd[34358]: Listen normally on 4 lo [::1]:123
10 Jul 09:17:57 ntpd[34358]: Listen normally on 5 enp6s0 [fe80::7285:c2ff:fe65:9f19%3]:123
10 Jul 09:17:57 ntpd[34358]: Listening on routing socket on fd #22 for interface updates
10 Jul 09:17:58 ntpd[34358]: Soliciting pool server 209.50.63.74
10 Jul 09:17:59 ntpd[34358]: Soliciting pool server 4.53.160.75
10 Jul 09:18:00 ntpd[34358]: Soliciting pool server 69.89.207.199
10 Jul 09:18:00 ntpd[34358]: Soliciting pool server 72.30.35.88
10 Jul 09:18:01 ntpd[34358]: Soliciting pool server 173.0.48.220
10 Jul 09:18:01 ntpd[34358]: Soliciting pool server 162.159.200.1
10 Jul 09:18:01 ntpd[34358]: Soliciting pool server 108.61.73.243
10 Jul 09:18:02 ntpd[34358]: Soliciting pool server 208.79.89.249
10 Jul 09:18:02 ntpd[34358]: Soliciting pool server 208.67.75.242
10 Jul 09:18:02 ntpd[34358]: Soliciting pool server 91.189.94.4
10 Jul 09:18:03 ntpd[34358]: Soliciting pool server 91.189.89.198
10 Jul 09:18:03 ntpd[34358]: Soliciting pool server 67.217.112.181
10 Jul 09:18:04 ntpd[34358]: Soliciting pool server 91.189.89.199
10 Jul 09:18:04 ntpd[34358]: Soliciting pool server 64.225.34.103
10 Jul 09:18:05 ntpd[34358]: Soliciting pool server 91.189.91.157
10 Jul 09:18:06 ntpd[34358]: Soliciting pool server 2001:67c:1560:8003::c8
10 Jul 09:18:06 ntpd[34358]: ntpd: time slew +0.001834 s
ntpd: time slew +0.001834s
admin@virtland:~$ sudo service ntp start
admin@virtland:~$ sudo timedatectl
Local time: Fri 2020-07-10 09:18:21 EDT
Universal time: Fri 2020-07-10 13:18:21 UTC
RTC time: Fri 2020-07-10 13:18:21
Time zone: America/New_York (EDT, -0400)
System clock synchronized: no
NTP service: n/a
RTC in local TZ: no
admin@virtland:~$
Run Code Online (Sandbox Code Playgroud)
我想也许我需要使用一些更新的说明,所以我尝试了这个:https : //linuxconfig.org/how-to-sync-time-on-ubuntu-20-04-focal-fossa-linux
admin@virtland:~$ timedatectl set-ntp off
Failed to set ntp: NTP not supported
admin@virtland:~$ timedatectl set-ntp on
Failed to set ntp: NTP not supported
Run Code Online (Sandbox Code Playgroud)
然后我从另一个线程尝试了这个:
admin@virtland:~$ sudo systemctl status systemd-timesyncd.service
[sudo] password for admin:
? systemd-timesyncd.service
Loaded: masked (Reason: Unit systemd-timesyncd.service is masked.)
Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)
我从未接触过timesyncd.conf,但无论如何它都被完全注释掉了:
cat /etc/systemd/timesyncd.conf
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.
[Time]
#NTP=
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
Run Code Online (Sandbox Code Playgroud)
我再次检查了timedatectl,现在它打开了,但仍然没有使用NTP。我知道 NTP 更精确,这在某些情况下可能很重要。不确定使用 pci passthrough 的虚拟化是否需要非常精确的时间。
从我正在阅读的其他内容来看,我认为 NTP 可能与 timesyncd 冲突。所以暂时去掉ntp:
sudo systemctl stop ntp
sudo apt-pruge ntp
Run Code Online (Sandbox Code Playgroud)
但是清除ntp后,NTP显示为活动状态!
admin@virtland:~$ timedatectl
Local time: Fri 2020-07-10 09:34:52 EDT
Universal time: Fri 2020-07-10 13:34:52 UTC
RTC time: Fri 2020-07-10 13:34:52
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Run Code Online (Sandbox Code Playgroud)
我要疯了吗?NTP 还在吗?不。
admin@virtland:~$ sudo systemctl start ntp
Failed to start ntp.service: Unit ntp.service not found.
Run Code Online (Sandbox Code Playgroud)
抱歉没有问一个更集中的问题,但这里到底发生了什么?
我真的很迷茫。另外,我稍后会编辑这篇文章,并不会考虑删除 NTP(从而激活它?!)是否修复了导致我陷入困境的稳定性问题。
编辑:我做的下一件事是在 timesyncd 上禁用 ntp 并(重新)安装 NTP,如此处所述。https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04
这导致:
admin@virtland:~$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
0.us.pool.ntp.o .POOL. 16 p - 64 0 0.000 0.000 0.000
1.us.pool.ntp.o .POOL. 16 p - 64 0 0.000 0.000 0.000
2.us.pool.ntp.o .POOL. 16 p - 64 0 0.000 0.000 0.000
3.us.pool.ntp.o .POOL. 16 p - 64 0 0.000 0.000 0.000
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
admin@virtland:~$ timedatectl
Local time: Fri 2020-07-10 10:35:39 EDT
Universal time: Fri 2020-07-10 14:35:39 UTC
RTC time: Fri 2020-07-10 14:35:40
Time zone: America/New_York (EDT, -0400)
System clock synchronized: no
NTP service: n/a
RTC in local TZ: no
admin@virtland:~$ systemctl status systemd-timesyncd
? systemd-timesyncd.service
Loaded: masked (Reason: Unit systemd-timesyncd.service is masked.)
Active: inactive (dead)
admin@virtland:~$ nano /etc/ntp.conf
admin@virtland:~$ systemctl status systemd-timesyncd
? systemd-timesyncd.service
Loaded: masked (Reason: Unit systemd-timesyncd.service is masked.)
Active: inactive (dead)
admin@virtland:~$ ntpstat
unsynchronised
polling server every 8 s
Run Code Online (Sandbox Code Playgroud)
我按照 Michael Hampton 的建议撤销了这些更改:这是否意味着它有效?
boss@virtland:~$ sudo systemctl stop ntp
Failed to stop ntp.service: Unit ntp.service not loaded.
boss@virtland:~$ sudo timedatectl set-ntp yes
boss@virtland:~$ sudo timedatectl set-ntp on
boss@virtland:~$ ntpq -p
bash: /usr/bin/ntpq: No such file or directory
boss@virtland:~$ systemctl status systemd-timesyncd
? systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; >
Active: active (running) since Fri 2020-07-10 10:49:18 EDT; 50s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 108365 (systemd-timesyn)
Status: "Initial synchronization to time server 91.189.94.4:123 (ntp.ubu>
Tasks: 2 (limit: 154317)
Memory: 1.8M
CGroup: /system.slice/systemd-timesyncd.service
??108365 /lib/systemd/systemd-timesyncd
Jul 10 10:49:17 virtland systemd[1]: Starting Network Time Synchronization...
Jul 10 10:49:18 virtland systemd[1]: Started Network Time Synchronization.
Jul 10 10:49:18 virtland systemd-timesyncd[108365]: Initial synchronization t>
lines 1-14/14 (END)
Run Code Online (Sandbox Code Playgroud)
timedatectl
Local time: Fri 2020-07-10 10:52:56 EDT
Universal time: Fri 2020-07-10 14:52:56 UTC
RTC time: Fri 2020-07-10 14:52:56
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Run Code Online (Sandbox Code Playgroud)
所以我想它正在起作用。由于使我走上这条道路的崩溃仍在发生,我想时间不是问题。
该timedatectl命令将报告NTP是在使用时无论是chronyd或systemd-timesyncd启用和运行。这两个都是适用于大多数服务器和工作站的轻量级 NTP 客户端。它不识别ntpd服务,它被设计为既是 NTP 客户端又是服务器,现在我们有专用的 NTP 客户端软件,不再受青睐于不需要将 NTP 转发到其他系统或使用专门的系统的系统GPS 等硬件来获取时间。
| 归档时间: |
|
| 查看次数: |
16776 次 |
| 最近记录: |