歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Shell應用:統計指定格式超過n秒的數據

該腳本的應用場景是數據分析,一般作線上日志分析的人員需要觀察線上數據的變化,如:

1.訪問數據庫的響應大於1000毫秒的sql

2.apache cookielog響應大於多少毫秒的數據

數據格式:

[html]
  1. 2010-12-14 00:01:26,427 FATAL FUNCTION_TIME - wmmad.alloffer.get 15511ms  
  2. 2010-12-14 00:01:33,164 FATAL FUNCTION_TIME - wmmad.alloffer.get 14213ms  
  3. 2010-12-14 00:02:31,021 FATAL FUNCTION_TIME - wmmad.alloffer.get 14126ms  
  4. 2010-12-14 00:05:08,160 FATAL FUNCTION_TIME - wmmad.alloffer.get 15295ms  
  5. 2010-12-14 00:24:00,372 ERROR FUNCTION_TIME - wmmad.offer.repost 406ms  

腳本:

[plain]
  1. #/bin/bash  
  2.   
  3. # author: madding.lip  
  4. # date 2010.12.14  
  5. # 統計超n毫秒的數據量  
  6.   
  7. ERROR_USAGE=1  
  8.   
  9. if [ $# != 2 ]; then  
  10.     echo "Usage: $0 file times";  
  11.     exit $ERROR_USAGE  
  12. fi  
  13.   
  14. myfile=$1  
  15. mytime=$2  
  16.   
  17.   
  18. all=0  
  19. count=0;  
  20.   
  21. data=`cat $myfile | awk '{print $7}' | sed 's/ms//g'`;  
  22.   
  23. for i in $data ;  
  24. do   
  25.     all=$(( $all + 1 ));  
  26.     if test $(( $mytime < $i )) -eq 1 ;then  
  27. #        echo $i; sleep 1;  
  28.         count=$(( $count + 1 ));   
  29.     fi  
  30. done;  
  31.   
  32. echo "response time over ${mytime}ms: "$count" times"  
  33. echo "all count: "$all" times"  

具體根據數據格式作調整即可。

Copyright © Linux教程網 All Rights Reserved