zoukankan      html  css  js  c++  java
  • 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,傻了



  • 相关阅读:
    程序人生系列之新闻发布系统 1217
    $("expr","expr")
    jQuery 插件开发by:ioryioryzhan
    jQuery插件开发全解析 by gaojiewyh
    前端水好深
    网页设计师一定要知道的网站资源
    jQuery end()方法 by keneks
    前端书籍 by 小精灵
    emacs命令速查 摘
    jquery要怎么写才能速度最快? by 大白
  • 原文地址:https://www.cnblogs.com/csmountains/p/14362998.html
Copyright © 2011-2022 走看看