我正在 kern.log 中查找特定问题的原因。有许多条目带有 00:00:00 时间戳:
Jun 11 00:00:00 mymachine kernel: [ 0.000000] Initializing cgroup subsys cpusetJun 11 00:00:00 mymachine kernel: [ 0.000000] Initializing cgroup subsys cpu
Jun 11 00:00:00 mymachine kernel: [ 0.000000] Linux version 3.2.0-33-virtual (buildd@batsu) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #52-Ubuntu SMP Thu Oct 18 16:48:3
7 UTC 2012 (Ubuntu 3.2.0-33.52-virtual 3.2.31)
Jun 11 00:00:00 mymachine kernel: [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.2.0-33-virtual root=LABEL=cloudimg-rootfs ro console=ttyS0
假设我实际上没有在午夜启动机器 - 00:00:00 时间戳是否意味着启动过程的特定阶段?他们这样做有什么特别的原因吗?
(这是一个托管在 OpenStack 上的 Ubuntu Precise VM,如果这很重要的话。我认为这次启动是在从另一个映像克隆之后立即启动的。)
编辑更多信息:
据我所知 ( pgrep ntp
, ls /etc/ntp*
) ntp 没有运行。
时间似乎(正确地)设置为 UTC,(错误地)没有设置本地时区。
EDIT2 00:00:00 的最后一个日志条目如下所示:
Jun 11 00:00:00 mymachine kernel: [ 6.324599] type=1400 audit(1370908796.761:11): apparmor="STATUS" operation="profile_load" name="/usr/sbin/tcpdump" pid=875 comm="apparmor_parser"
Jun 11 00:00:02 mymachine kernel: [ 12.259133] postgres (1033): /proc/1033/oom_adj is deprecated, please use /proc/1033/oom_score_adj instead.
Jun 11 00:00:05 mymachine kernel: [ 13.592385] eth0: no IPv6 routers present
Jun 11 06:22:15 mymachine kernel: [22942.768233] init: tilemill main process (3167) killed by TERM signal
Jun 11 06:40:14 mymachine kernel: [24022.599001] init: tilemill main process (5640) killed by TERM signal
答案1
看一下另一个 Unix 和 Linux 问题,标题为:关联 /var/log/* 时间戳。
计时细节/分辨率由启动期间传递给内核的设置控制:
$ grep PRINTK /boot/config-`uname -r`
CONFIG_PRINTK=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_PRINTK_TIME=y
CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_EARLY_PRINTK=y
CONFIG_EARLY_PRINTK_DBGP=y
您可以在此处阅读有关这些选项的更多信息kernel.org git 仓库。
摘自上面的页面
配置PRINTK_TIME
bool "Show timing information on printks" depends on PRINTK help
选择此选项会导致将 printk() 消息的时间戳添加到 syslog() 系统调用的输出和控制台上。
时间戳始终在内部记录,并导出到/dev/kmsg。该标志仅指定是否应包含时间戳,而不是记录时间戳。
该行为还由内核命令行参数 printk.time=1 控制。请参阅文档/kernel-parameters.txt
时间戳[ 0.000000]
以系统启动后的秒数为单位。