dmesg 时间戳转换为时间

本文介绍了如何将dmesg命令输出的日志时间戳转换为可读的日期时间。通过简单的命令行操作,可以将dmesg日志中的时间差结合系统启动时间转化为具体的时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取dmesg 时间戳

最简单的一条命令搞定:

# dmesg -T | head -10
[Sat Nov  2 19:11:54 2019] Initializing cgroup subsys cpuset
[Sat Nov  2 19:11:54 2019] Initializing cgroup subsys cpu
[Sat Nov  2 19:11:54 2019] Initializing cgroup subsys cpuacct
[Sat Nov  2 19:11:54 2019] Linux version 3.10.0-957.10.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Mon Mar 18 15:06:45 UTC 2019
[Sat Nov  2 19:11:54 2019] Command line: BOOT_IMAGE=/boot/vmlinuz-3.10.0-957.10.1.el7.x86_64 root=UUID=e508d892-2819-4968-944c-fe90bcf1345e ro console=tty0 console=ttyS0,115200n8 crashkernel=auto console=ttyS0,115200 LANG=en_US.UTF-8
[Sat Nov  2 19:11:54 2019] e820: BIOS-provided physical RAM map:
[Sat Nov  2 19:11:54 2019] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[Sat Nov  2 19:11:54 2019] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[Sat Nov  2 19:11:54 2019] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[Sat Nov  2 19:11:54 2019] BIOS-e820: [mem 0x0000000000100000-0x00000000bffd9fff] usable

 复杂一点的脚本转换

[84679.822059] Out of memory: Kill process 40170 (named) score 3 or sacrifice child
[84679.822108] Killed process 40170 (named) total-vm:1876408kB, anon-rss:214440kB, file-rss:0kB, shmem-rss:0kB

在dmes日志中,时间戳 84679.822059 表示为系统启动到事件发生的时间差,这个值可以转换为时间戳;

dmesg_time=`echo "$(date +%s) - $(cat /proc/uptime | cut -f 1 -d' ') + 84679.822059" | bc`

echo $dmesg_time

/proc/uptime 第一列表示为系统开机时间,根据这个值和当前时间可以获取到dmesg日志中时间发生的时间

时间戳的转换为时间

[root@site1 ~]# date -d "@${dmesg_time}" '+%Y-%m-%d %H:%M:%S'
2019-01-03 11:10:54


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值