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`

浙公网安备 33010602011771号