AWK 分割过滤日志

工作中可能经常要监控日志中的某些关键字,但日志可能特别大,这时候就需要对日志进行分割过滤,获取到想要的日志,这时候AWK可以很好的帮助我们!

1, 首先根据时间段来分割

一般日志都会显示具体时间,我们可以首先根据时间来分割日志:

例如:

nowtime1=`env LANG=en_US.UTF-8 date+"%Y-%m-%d"`;

nowtime2=`env LANG=en_US.UTF-8 date+"%H:%M:%S"`;

nowtime3=`env LANG=en_US.UTF-8 date+"%H:%M:%S" -d "$1 $2 ago"`;

 

cat access.log | awk -v monnow="$nowtime1" -v monnow2="$nowtime2" awk -v monnow3="nowtime3" 'substr($1,0,10)==monnow && substr($2,0,8) > monnow3 && substr($2,0,8) < monnow2 {print $0}' | grep -C 5 "$3" | head -n 10 > test.log

count=`cat access.log | awk -v monnow="$nowtime1" -v monnow2="$nowtime2" awk -v monnow3="nowtime3" 'substr($1,0,10)==monnow && substr($2,0,8) > monnow3 && substr($2,0,8) < monnow2 {print $0}' | grep  "$3" | wc -l`

 

posted @ 2020-06-30 10:14  jackwangng  阅读(324)  评论(0)    收藏  举报