linux 6转换系统审计日志文件

在查看/var/log/audit.log日志文件的时候,没法识别时间,需要进行时间转换

1:原来的日志文件格式

type=LOGIN msg=audit(1493503801.016:68448): pid=20835 uid=0 old auid=4294967295 new auid=0 old ses=4294967295 new ses=11216
type=USER_START msg=audit(1493503801.022:68449): user pid=20835 uid=0 auid=0 ses=11216 msg='op=PAM:session_open acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=CRED_DISP msg=audit(1493503801.038:68450): user pid=20835 uid=0 auid=0 ses=11216 msg='op=PAM:setcred acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=USER_END msg=audit(1493503801.039:68451): user pid=20835 uid=0 auid=0 ses=11216 msg='op=PAM:session_close acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'

2:转换之后的时间格式

read.audit.log:type=USER_START msg=audit(Sun May  7 08:20:01 CST 2017.997:1477): user pid=11451 uid=0 auid=0 ses=246 msg='op=PAM:session_open acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
read.audit.log:type=CRED_DISP msg=audit(Sun May  7 08:20:02 CST 2017.011:1478): user pid=11451 uid=0 auid=0 ses=246 msg='op=PAM:setcred acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
read.audit.log:type=USER_END msg=audit(Sun May  7 08:20:02 CST 2017.012:1479): user pid=11451 uid=0 auid=0 ses=246 msg='op=PAM:session_close acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
read.audit.log:type=USER_ACCT msg=audit(Sun May  7 08:30:01 CST 2017.016:1480): user pid=11469 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:accounting acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
read.audit.log:type=CRED_ACQ msg=audit(Sun May  7 08:30:01 CST 2017.016:1481): user pid=11469 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:setcred acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
read.audit.log:type=LOGIN msg=audit(Sun May  7 08:30:01 CST 2017.016:1482): pid=11469 uid=0 old auid=4294967295 new auid=0 old ses=4294967295 new ses=247

实现方法

1:利用perl的转换

       创建perl转换格式

       [oracle@dg-master u01]$ cat timetrans.pl 
       s/(1\d{9})/localtime($1)/e

        使用命令查看

        [oracle@dg-master u01]$ tail -1000 audit.log |perl -p timetrans.pl 

2:使用脚本转换,将转换过的文件格式内容输出到指定的文件

[root@dg-master u01]$ more timetrans.sh 
#!/bin/bash
FILE=/u01/audit.log
cat $FILE |while  read LINE
do
    Udate=`echo $LINE|awk -F'[(.]+'  '{print $2}'`
    #Udate=`echo $LINE|awk -F. '{print $1}' | awk -F'(' '{print $2}'`
    Cdate=`date -d @$Udate`
    echo $LINE|sed "s/[0-9]\{10\}/$Cdate/"  >>transtime.log
done

Note:这里是使用了第二种方式

输出指定的时间段内容

[root@dg-master u01]$ sed -n '/Sat May  6 02:[0-9][0-9]:[0-9][0-9] CST 2017/,$p' transtime.log



  









你可能感兴趣的:(linux,日志文件,抓取日志信息)