• awk转换dmesg输出的时间信息为标准时间信息


    系统:CentOS Linux release 7.4.1708 (Core)

    dmesg输出:

    [   31.804310] bnx2x 0000:01:00.3 em4: using MSI-X  IRQs: sp 96  fp[0] 98 ... fp[7] 105
    [   32.104099] virbr0: port 1(virbr0-nic) entered disabled state
    [   69.054610] fuse init (API version 7.22)
    [  137.552288] TCP: lp registered
    [  271.929875] usb 2-1.2: USB disconnect, device number 3
    [85557.251323] Ebtables v2.0 unregistered
    [95405.091843]  sdb: sdb1
    [95405.341079]  sdc: sdc1
    [95405.596710]  sdd: sdd1

    一行开头的[]中显示的时间信息,是表示事件发生时,系统已经启动的时间,可以利用/proc/uptime中信息(该文件第一列表示系统至今的启动时间)来进行计算转换。脚本如下:

    #! /bin/bash
    
    awk '{
            "head -1 /proc/uptime" | getline upts;
            split(upts, arrtimes, /[ 	]/);
            uptime = arrtimes[1];
            sub(/[/, "", $0);
            sub(/]/, "", $0);
            "date +%s.%N" | getline syst
            #print syst
            t = syst - uptime + $1;
            secs = int(t);
            millis = int((t - secs) * 1000);
            $1 = strftime("%Y-%m-%d %H:%M:%S", t)","sprintf("%03d", millis);
            print $0
    }'

    将上面内容放到一个bash脚本中,比如show.sh,然后加上可执行权限,那么就可以通过下面命令查看转换后的信息:

    dmesg | ./show.sh

    也可以将上面awk的代码改成可执行awk脚本文件来执行操作。

    ps: 忘了可以使用 dmesg -T,傻了



  • 相关阅读:
    基于Adaboost的人脸检测算法
    操作系统笔试题及答案
    eclipse Maven plugin 配置
    网站服务管理系统系列教程之五
    2017第4周日
    2017春节~人生智慧箴言
    2017年初夕
    2017农历二十九
    王国维收藏真伪
    2017第3周二假期里该做的事
  • 原文地址:https://www.cnblogs.com/csmountains/p/14362998.html
Copyright © 2020-2023  润新知