赞
踩
最近由于机房安全规范的要求,需要第三方软件进行系统安全审计,linux操作系统默认有登陆、定时任务等审计,要查看其日志的时候发现时间格式为unix时间戳格式,阅读起来很不方便,便想将其中的时间戳转换成为普通时间进行查看
网上普遍的做法为使用perl脚本在阅读时进行转换
cat time.pls/(1\d{9})/localtime($1)/e
然后使用管道命令进行转换
less,more,tail -fless /var/log/audit/audit.log | perl -p time.pl
more /var/log/audit/audit.log | perl -p time.pl
tail -f /var/log/audit/audit.log | perl -p time.pl
使用这些命令来查看起来不太方便,不像vim查看的全面
于是就写了一个脚本将audit.log中的时间戳转换成普通时间写到新的文件中,以下为脚本代码#!/bin/bash
FILE=/var/log/audit/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/" >> read.audit.log
done
不过代码的执行效率有点低,在1核1G的虚拟机跑2W条记录大约需要2MIN
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。