Linux:使用bash脚本分析日志(交易信息日志分析)

时间:2024-04-04 19:15:03

使用bash脚本分析日志

背景

总所周知,线上交易程序不能轻易修改代码,以防止出现不必要的错误。
但于此同时,在进行交易信息分析时,部分需要根据原始数据计算才能得到的指标无法直接获取,而且日志信息比较杂乱,不便汇总分析,因此可以使用bash脚本对日志进行分析。

ps:经过几天时间的学习,我写了一个简单的日志分析脚本,分享一下大致思路,如果哪位同学有更好的解决方式,欢迎指教。

使用命令

for, if, sed, grep, awk, echo, date

实现过程

  1. 先截取 $timeInterval 天内的日志,进行分析
echo $timeInterval
if [ "$timeInterval" != "" ];then
	startDate=`date -d "${timeInterval} days ago" +%Y-%m-%d`
else
	#startDate=`date -d "100 days ago" +%Y-%m-%d`
	startDate="2018-10-01"
fi
endDate=`date -d "now" +%Y-%m-%d`
#最后一行的时间
lastLineDate=`tail -n 1 $file |awk -F '[ ]' '{print $2}'`
endDate="${endDate} ${lastLineDate}"
#echo $endDate
#截取要分析的时间段的日志
sed -n "/${startDate}/,/${endDate}/p" $file > analysistemp.log
  1. 获取每次交易开始的行号,两个相邻的开始行号之间就是一次交易的日志
grep -niR "predictOpptunity start" $file |awk -F ":20" '{print $1}'
  1. 使用sed命令截取两个行号之间的日志,然后截取需要的字段进行简单的计算
  2. 打印截取的字段和计算结果
    Linux:使用bash脚本分析日志(交易信息日志分析)

详细代码https://download.csdn.net/download/zzz19920821/10746823