shell 脚本-私用日志分析

好久没有学习shell,为分析日志写了一小段记录如下:

#!/bin/sh

##
# useage: ./an.sh logName
#
##

if [ $# -eq 0 ]; then
  echo "useage: ./an.sh logName";
  exit 0;
fi

logName=$1

grep getAppTilesDetail ${logName} |grep  "API.RQ" |awk -F'[' '{print$2}'|awk -F'-' '{print$5}'|sed 's/\]//g'|sort|uniq
 > threadNo.txt

nuArr=`cat threadNo.txt`

threadNamePre="http-nio-8080-exec-"
for var in ${nuArr}
do
  threadName=${threadNamePre}${var}
  grepStr="\["$threadName"\]"
  grep ${grepStr}  ${logName}  > ./threadfile/$threadName
done

使用到了参数传递、grep、awk、sed、for循环等, 实现了将日志文件中相同线程日志写入一个文件的功能

再来一段:

#!/bin/sh


parseTime() {
  OLD_IFS="$IFS" 
  IFS="," 
  arr=($1) 
  IFS="$OLD_IFS" 

  msStr=${arr[1]}
  tStr=${arr[0]}
#echo $msStr

  OLD_IFS="$IFS"
  IFS=":"
  timeArr=($tStr)
  IFS="$OLD_IFS"

  h=${timeArr[0]}
  m=${timeArr[1]}
  s=${timeArr[2]}

  ret=`expr $h \* 60`   # *60+$s))
  ret=`expr $ret + $m`
  ret=`expr $ret \* 60`
  ret=`expr $ret + $s`
  ret=`expr $ret \* 1000`
  ret=`expr $ret + $msStr`
  echo $ret
  #return ret
}


rqTime=0

file=$1
cat $file | while read line
#for line in $logarr
do
  # echo $line
  OLD_IFS="$IFS"
  IFS=" "
  array=($line)
  IFS="$OLD_IFS"
  
  timeStr=${array[1]}
  echo $timeStr
  if [[ $line =~ "API.RQ:" ]];
  then
    rqTime=`parseTime $timeStr`  
    #rqTime=$?
    echo $rqTime
    #echo $line 
    echo "now rqTime=" $rqTime
  elif [[ $line =~ "API.RP:" ]];
  then    

    rpTime=`parseTime $timeStr`
    #rpTime=$?
    echo "now rpTime=" $rpTime
    takeTime=`expr $rpTime - $rqTime`
    echo "takeTime=" $takeTime
    if [ $takeTime -gt $2 ]; then
      echo "Take time:" ${takeTime} 
      echo "rp:" $line
    fi
    rqTime=0
  fi

done

使用到了shell的数值计算,逻辑判断等, 为计算接口从请求打印日志到返回打印日志之前的用时 。

转载于:https://my.oschina.net/u/240297/blog/2885221

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值