首页 > 代码库 > 日志中抓取特定字段shell脚本

日志中抓取特定字段shell脚本

    老大让我把日志中的信息归类总结,好麻烦,写了这个脚本帮助工作。

    需改进:1.抓取日志时间,只需要最后一次的时间,而这个脚本全部会抓到

            2.需要两个时间的差值(比如15:23:34与23:23:34),没有完成

            3.aix好不习惯

#!/bin/ksh
#进入目标文件目录
cd /user/lyb
#输入标识字段
echo "开始时间"   "结束时间"   "客户组"    "客户数量" >> /user/file10
#for i in "1 2 3 4 5 6 7 8 9 10 11 12"
while [ true ]
do
echo "Please input the filename"
#变量名为文件名,read -p不好使
read filename 
#取出需要的字段,当文件中有多个相同字段时,没有判断条件
s1=`grep  "接收到注册响应消息包,开始执行任务解析" $filename  | sed ‘s/\..*//g‘`
s2=`grep  "终止任务处理完毕,服务退出"   $filename | sed ‘s/\..*//g‘`
s3=`grep  "加载客户组.*用户" $filename | sed ‘s/^.*\[//g‘ | sed ‘s/\].*$//g‘`
s4=`grep  "加载了.*个用户"  $filename | sed ‘s/^.*\[//g‘ | sed ‘s/\].*$//g‘`
#将取出的字段输入到文件
echo    "$s1"       "$s2"       "$s3"         "$s4" >> /user
/file10 
done

#计算时间差sql语句

#select round((to_date(‘2014-11-13 12:22:23‘,‘yyyy-mm-dd hh24:mi:ss‘)-to_date(‘2014-11-13 12:12:32‘,‘yyyy-mm-dd hh24:mi:ss‘))*24*60) time from dual;


日志中抓取特定字段shell脚本