一.需求背景:对部署在服务器上的项目日志通过shell脚本进行awk分词处理

二.实现功能:利用awk强大的文本处理功能,对info日志中“error”-->所在行及其下一行  进行提取并重定向到指定txt;

#昨天日期 注意 ``
DATE=`date+”%Y-%m-%d” –d “-24hour”`

#原日志地址
bill_path=/data/bill/info
#重定向地址
bill_txt_path=~/bill_daily_log/${DATE}.txt

#创建文件
if [ ! –f ${bill_txt_path} ];then
	touch ${bill_txt_path}
	echo “bill文件创建完成”
else 
	echo “bill文件已存在”
fi

#查找日志中存在“error”的匹配行及其下一行并将数据写入创建的txt
cd ${bill_path}
files=`find . –name ‘ybill.log.${DATE}*’`

echo “查询到与日期匹配的日志文件:”
echo ${files}
for item in $files
do
	echo ”----文件:” ${item} >>${ybill_txt_path}
	echo ${item}
	awk ‘$0~/ERROR/{print NR”)”,$0;getline;print NR”)” $0;}’  $item >>ybill_api_txt_path}}
done

 

Logo

更多推荐