1、shell之tomcat请求分析

所有脚本需自行修改!!!!!!

shell分析每小时请求量及占比{1s、2s、3s}

#!/bin/bash
#分析每小时请求量及占比{1s,2s,3s}
#whrite by  Mr.yang  2017-12-25
_date=`date +%F -d "-1 day"`
#_date=`date +%F`
_date1=`date +%Y%m%d`
_time=`date -d "1 minute ago" "+%Y"`
_data_dir="/u01/httpd/"
_data_path="/u01/httpdtime/"
cat  ${_data_dir}app_access_log.${_date}.txt |awk '$NF>3{print $5 " " $8 " " $NF}' > ${_data_path}/apptime.${_date}.txt
cat  ${_data_path}/apptime.${_date}.txt |awk -F[[] '{print $2}' > ${_data_path}/apptime3s.${_date}.txt
_total=`grep -c "${_time}" ${_data_dir}/app_access_log.${_date}.txt `
_total3s=`grep -c "${_time}" ${_data_path}/apptime3s.${_date}.txt `
_percent=$(printf "%d‱" $((${_total3s}*10000/${_total})))
#echo "${_date} 1.30app request total is ${_total} More than 3 seconds total is ${_total3s} accounting ratio ${_percent}" 
#cat ${_data_path}/apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -30
#If total001 is 0 to 1 total request volume
#Such as total002 is 0 to 1 more than 3 seconds the number of requests
#Such as total003 is 0 to 1 more than 3 seconds to request the port
total001=`grep "2018:00" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total002=`grep "2018:00" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total002apptime3s.${_date}.txt && grep "2018:00" ${_data_path}/total002apptime3s.${_date}.txt | wc -l `
total003=`cat ${_data_path}total002apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent00=$(printf "%d‱" $((${total002}*10000/${total001})))
echo "0 to 1 Total request ${total001} , More than 3 seconds ${total002} , Great ratio ${_percent00} , Most slow request interface ${total003}" > ${_data_path}apptime.txt

total011=`grep "2018:01" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total012=`grep "2018:01" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total012apptime3s.${_date}.txt && grep "2018:01" ${_data_path}/total012apptime3s.${_date}.txt | wc -l `
total013=`cat ${_data_path}/total012apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent01=$(printf "%d‱" $((${total012}*10000/${total011})))
echo "1 to 2 Total request ${total011} , More than 3 seconds ${total012} , Great ratio ${_percent01} , Most slow request interface ${total013}" >> ${_data_path}apptime.txt

total021=`grep "2018:02" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total022=`grep "2018:02" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total022apptime3s.${_date}.txt && grep "2018:02" ${_data_path}/total022apptime3s.${_date}.txt | wc -l `
total023=`cat ${_data_path}/total022apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent02=$(printf "%d‱" $((${total022}*10000/${total021})))
echo "2 to 3 Total request ${total021} , More than 3 seconds ${total022} , Great ratio ${_percent02} , Most slow request interface ${total023}" >> ${_data_path}apptime.txt

total031=`grep "2018:03" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total032=`grep "2018:03" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total032apptime3s.${_date}.txt && grep "2018:03" ${_data_path}/total032apptime3s.${_date}.txt | wc -l `
total033=`cat ${_data_path}/total032apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent03=$(printf "%d‱" $((${total032}*10000/${total031})))
echo "3 to 4 Total request ${total031} , More than 3 seconds ${total032} , Great ratio ${_percent03} , Most slow request interface ${total033}" >> ${_data_path}apptime.txt

total041=`grep "2018:04" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total042=`grep "2018:04" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total042apptime3s.${_date}.txt && grep "2018:04" ${_data_path}/total042apptime3s.${_date}.txt | wc -l `
total043=`cat ${_data_path}/total042apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent04=$(printf "%d‱" $((${total042}*10000/${total041})))
echo "4 to 5 Total request ${total041} , More than 3 seconds ${total042} , Great ratio ${_percent04} , Most slow request interface ${total043}" >> ${_data_path}apptime.txt

total051=`grep "2018:05" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total052=`grep "2018:05" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total052apptime3s.${_date}.txt && grep "2018:05" ${_data_path}/total052apptime3s.${_date}.txt | wc -l `
total053=`cat ${_data_path}/total052apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent05=$(printf "%d‱" $((${total052}*10000/${total051})))
echo "5 to 6 Total request ${total051} , More than 3 seconds ${total052} , Great ratio ${_percent05} , Most slow request interface ${total053}" >> ${_data_path}apptime.txt

total061=`grep "2018:06" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total062=`grep "2018:06" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total062apptime3s.${_date}.txt && grep "2018:06" ${_data_path}/total062apptime3s.${_date}.txt | wc -l `
total063=`cat ${_data_path}/total062apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent06=$(printf "%d‱" $((${total062}*10000/${total061})))
echo "6 to 7 Total request ${total061} , More than 3 seconds ${total062} , Great ratio ${_percent06} , Most slow request interface ${total063}" >> ${_data_path}apptime.txt

total071=`grep "2018:07" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total072=`grep "2018:07" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total072apptime3s.${_date}.txt && grep "2018:07" ${_data_path}/total072apptime3s.${_date}.txt | wc -l `
total073=`cat ${_data_path}/total072apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent07=$(printf "%d‱" $((${total072}*10000/${total071})))
echo "7 to 8 Total request ${total071} , More than 3 seconds ${total072} , Great ratio ${_percent07} , Most slow request interface ${total073}" >> ${_data_path}apptime.txt

total081=`grep "2018:08" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total082=`grep "2018:08" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total082apptime3s.${_date}.txt && grep "2018:08" ${_data_path}/total082apptime3s.${_date}.txt | wc -l `
total083=`cat ${_data_path}/total082apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent08=$(printf "%d‱" $((${total082}*10000/${total081})))
echo "8 to 9 Total request ${total081} , More than 3 seconds ${total082} , Great ratio ${_percent08} , Most slow request interface ${total083}" >> ${_data_path}apptime.txt

total091=`grep "2018:09" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total092=`grep "2018:09" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total092apptime3s.${_date}.txt && grep "2018:09" ${_data_path}/total092apptime3s.${_date}.txt | wc -l `
total093=`cat ${_data_path}/total092apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent09=$(printf "%d‱" $((${total092}*10000/${total091})))
echo "9 to 10 Total request ${total091} , More than 3 seconds ${total092} , Great ratio ${_percent09} , Most slow request interface ${total093}" >> ${_data_path}apptime.txt

total101=`grep "2018:10" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total102=`grep "2018:10" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total102apptime3s.${_date}.txt && grep "2018:10" ${_data_path}/total102apptime3s.${_date}.txt | wc -l `
total103=`cat ${_data_path}/total102apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent10=$(printf "%d‱" $((${total102}*10000/${total101})))
echo "10 to 11 Total request ${total101} , More than 3 seconds ${total102} , Great ratio ${_percent10} , Most slow request interface ${total103}" >> ${_data_path}apptime.txt

total111=`grep "2018:11" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total112=`grep "2018:11" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total112apptime3s.${_date}.txt && grep "2018:11" ${_data_path}/total112apptime3s.${_date}.txt | wc -l `
total113=`cat ${_data_path}/total112apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent11=$(printf "%d‱" $((${total112}*10000/${total111})))
echo "11 to 12 Total request ${total111} , More than 3 seconds ${total112} , Great ratio ${_percent11} , Most slow request interface ${total113}" >> ${_data_path}apptime.txt

total121=`grep "2018:12" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total122=`grep "2018:12" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total122apptime3s.${_date}.txt && grep "2018:12" ${_data_path}/total122apptime3s.${_date}.txt | wc -l `
total123=`cat ${_data_path}/total122apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent12=$(printf "%d‱" $((${total122}*10000/${total121})))
echo "12 to 13 Total request ${total121} , More than 3 seconds ${total122} , Great ratio ${_percent12} , Most slow request interface ${total123}" >> ${_data_path}apptime.txt

total131=`grep "2018:13" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total132=`grep "2018:13" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total132apptime3s.${_date}.txt && grep "2018:13" ${_data_path}/total132apptime3s.${_date}.txt | wc -l `
total133=`cat ${_data_path}/total132apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent13=$(printf "%d‱" $((${total132}*10000/${total131})))
echo "13 to 14 Total request ${total131} , More than 3 seconds ${total132} , Great ratio ${_percent13} , Most slow request interface ${total133}" >> ${_data_path}apptime.txt

total141=`grep "2018:14" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total142=`grep "2018:14" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total142apptime3s.${_date}.txt && grep "2018:14" ${_data_path}/total142apptime3s.${_date}.txt | wc -l `
total143=`cat ${_data_path}/total142apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent14=$(printf "%d‱" $((${total142}*10000/${total141})))
echo "14 to 15 Total request ${total141} , More than 3 seconds ${total142} , Great ratio ${_percent14} , Most slow request interface ${total143}" >> ${_data_path}apptime.txt

total151=`grep "2018:15" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total152=`grep "2018:15" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total152apptime3s.${_date}.txt && grep "2018:15" ${_data_path}/total152apptime3s.${_date}.txt | wc -l `
total153=`cat ${_data_path}/total152apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent15=$(printf "%d‱" $((${total152}*10000/${total151})))
echo "15 to 16 Total request ${total151} , More than 3 seconds ${total152} , Great ratio ${_percent15} , Most slow request interface ${total153}" >> ${_data_path}apptime.txt

total161=`grep "2018:16" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total162=`grep "2018:16" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total162apptime3s.${_date}.txt && grep "2018:16" ${_data_path}/total162apptime3s.${_date}.txt | wc -l `
total163=`cat ${_data_path}/total162apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent16=$(printf "%d‱" $((${total162}*10000/${total161})))
echo "16 to 17 Total request ${total161} , More than 3 seconds ${total162} , Great ratio ${_percent16} , Most slow request interface ${total163}" >> ${_data_path}apptime.txt

total171=`grep "2018:17" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total172=`grep "2018:17" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total172apptime3s.${_date}.txt && grep "2018:17" ${_data_path}/total172apptime3s.${_date}.txt | wc -l `
total173=`cat ${_data_path}/total172apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent17=$(printf "%d‱" $((${total172}*10000/${total171})))
echo "17 to 18 Total request ${total171} , More than 3 seconds ${total172} , Great ratio ${_percent17} , Most slow request interface ${total173}" >> ${_data_path}apptime.txt

total181=`grep "2018:18" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total182=`grep "2018:18" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total182apptime3s.${_date}.txt && grep "2018:18" ${_data_path}/total182apptime3s.${_date}.txt | wc -l `
total183=`cat ${_data_path}/total182apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent18=$(printf "%d‱" $((${total182}*10000/${total181})))
echo "18 to 19 Total request ${total181} , More than 3 seconds ${total182} , Great ratio ${_percent18} , Most slow request interface ${total183}" >> ${_data_path}apptime.txt

total191=`grep "2018:19" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total192=`grep "2018:19" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total192apptime3s.${_date}.txt && grep "2018:19" ${_data_path}/total192apptime3s.${_date}.txt | wc -l `
total193=`cat ${_data_path}/total192apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent19=$(printf "%d‱" $((${total192}*10000/${total191})))
echo "19 to 20 Total request ${total191} , More than 3 seconds ${total192} , Great ratio ${_percent19} , Most slow request interface ${total193}" >> ${_data_path}apptime.txt

total201=`grep "2018:20" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total202=`grep "2018:20" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total202apptime3s.${_date}.txt && grep "2018:20" ${_data_path}/total202apptime3s.${_date}.txt | wc -l `
total203=`cat ${_data_path}/total202apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent20=$(printf "%d‱" $((${total202}*10000/${total201})))
echo "20 to 21 Total request ${total201} , More than 3 seconds ${total202} , Great ratio ${_percent20} , Most slow request interface ${total203}" >> ${_data_path}apptime.txt

total211=`grep "2018:21" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total212=`grep "2018:21" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total212apptime3s.${_date}.txt && grep "2018:21" ${_data_path}/total212apptime3s.${_date}.txt | wc -l `
total213=`cat ${_data_path}/total212apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent21=$(printf "%d‱" $((${total212}*10000/${total211})))
echo "21 to 22 Total request ${total211} , More than 3 seconds ${total212} , Great ratio ${_percent21} , Most slow request interface ${total213}" >> ${_data_path}apptime.txt

total221=`grep "2018:22" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total222=`grep "2018:22" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total222apptime3s.${_date}.txt && grep "2018:22" ${_data_path}/total222apptime3s.${_date}.txt | wc -l `
total223=`cat ${_data_path}/total222apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent22=$(printf "%d‱" $((${total222}*10000/${total221})))
echo "22 to 23 Total request ${total221} , More than 3 seconds ${total222} , Great ratio ${_percent22} , Most slow request interface ${total223}" >> ${_data_path}apptime.txt

total231=`grep "2018:23" ${_data_dir}app_access_log.${_date}.txt | wc -l`
total232=`grep "2018:23" ${_data_path}/apptime3s.${_date}.txt > ${_data_path}/total232apptime3s.${_date}.txt && grep "2018:23" ${_data_path}/total232apptime3s.${_date}.txt | wc -l `
total233=`cat ${_data_path}/total232apptime3s.${_date}.txt | awk '{print $2}' | sort | uniq -c | sort -k 1 -nr | head -n1`
_percent23=$(printf "%d‱" $((${total232}*10000/${total231})))
echo "23 to 24 Total request ${total231} , More than 3 seconds ${total232} , Great ratio ${_percent23} , Most slow request interface ${total233}" >> ${_data_path}apptime.txt

cat ${_data_path}apptime.txt | sort -k22 -rn | head -n25
echo "${_date} 1.30app request total is ${_total} More than 3 seconds total is ${_total3s} accounting ratio ${_percent}" >> ${_data_path}apptime.txt
echo "${_date} 1.30app request total is ${_total} More than 3 seconds total is ${_total3s} accounting ratio ${_percent}"

awk '$NF>3{print }' ${_data_dir}app_access_log.${_date}.txt | awk '{print $8}' | sort -n | uniq -c | sort -nr | head -5  

慢请求接口保密已做切割,效果如下图:

 

转载于:https://www.cnblogs.com/xfyyxz/p/10431094.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值