我正在使用 Ubuntu 16.04.2 LTS
dmesg
输出如下行:
[ma mei 8 09:00:16 2017] [UFW BLOCK] IN=eth0 OUT= MAC= SRC=140.205.228.53 DST=xx.xxx.xxx.xxx LEN=143 TOS=0x00 PREC=0x00 TTL=111 ID=10224 DF PROTO=UDP SPT=53 DPT=39382 LEN=123
这与的输出不同date
:
$ date
ma 8 mei 2017 8:17:05 CEST
能否解释一下为什么时间戳dmesg
与实际时间不同?
答案1
解决方法是使用 journalctl 加上 -k、--dmesg。我使用 -k 因为它更短:
journalctl -k
它将只显示内核消息和正确的时间。
仅显示与短语匹配的内核行:
journalctl -kg phrase
答案2
这实际上不是 Ubuntu 特有的,但似乎是一个合理的答案,因为这个问题已经开放了一段时间。答案的副本来自服务器故障:
为了验证你的理论(顺便说一句,这是正确的),请以 root 身份执行以下操作:
hwclock --show
这将显示您正在执行命令的服务器上的硬件时钟。
要将您的硬件时钟与系统时间(由 ntp 管理)同步,请运行以下命令:
hwclock --systohc --utc
最后一个参数(--utc)告诉 hwclock 以协调世界时的形式存储硬件时钟中的时间。
此外,请记住 dmesg(1) 的手册页内容如下,因此您所遇到的行为是有记录的且有效的:
-T, --ctime
Print human-readable timestamps.
Be aware that the timestamp could be inaccurate! The time
source used for the logs is not updated after system
SUSPEND/RESUME.