黑马程序员技术交流社区

标题: 【上海校区】SED截取指定时间段日志 [打印本页]

作者: 梦缠绕的时候    时间: 2018-10-17 09:20
标题: 【上海校区】SED截取指定时间段日志
需求:对tomcat的日志每半个小时分析一次,如果出现指定字段就报警
由于这边所有的日志都是输入到一个文件中,所以我第一时间想到的是用sed来截取指定时间段的日志,然后输出到另一个文件中,然后对这个文件的内容进行分析即可。

在执行过程中,发现如果用sed截取日期的可以,但是如果截取后面的时分秒需要用到正则表达式,下面是我些的脚本,可以参考下:

#!/bin/bash
base_path="/data/sercices"
tmpfile="/tmp/test.log"

#获取当前时间和30分钟之前的时间
currenttime=$(date "+%F %H:%M")         #格式:2018-08-29 16:42:05
lasttime=$(date "+%F %H"  -d "30 minute ago")

#截取当前的时间做正则匹配,按照分钟是和30多对比
MI=`echo $currenttime | awk -F':' '{print $2}'`
if [ $MI -ge 30 ]
then
    start_time=$(date "+%F %H"):[0][0-9]
    end_time=$(date "+%F %H"):[3][0-9]
else
    start_time=$(date "+%F %H"  -d "30 minute ago"):[3][0-9]
    end_time=$(date "+%F %H"):[0][0-9]
fi

#echo ${start_time}
#echo ${end_time}

#截取指定时间段的日志文件
cd ${base_path}
sed -n "/${start_time}/,/${end_time}/p" nohup.out > $tmpfile

#判断指定字段出现的次数
num=$(egrep 'CommunicationsException|NullPointerException' $tmpfile | wc -l )
echo $num
---------------------
作者:幸福丶如此
来源:CSDN
原文:https://blog.csdn.net/m0_3788642 ... 066?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!


作者: 不二晨    时间: 2018-10-25 11:05





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2