jimmy2
(林遵明)
2020 年6 月 1 日 08:43
24
find_error_log(){
awk '$9~/404|500/{print $9}' nginx.log | sort | uniq -c ;
}
find_before(){
grep -e ' 500 ' -B 2 nginx.log | less;
}
find_top_10(){
awk '{print $1}' nginx.log | sort | uniq -c | sort -rn | awk 'NR<=10';
}
url_summary(){
less nginx.log | awk '{print $7}' | sed -e 's#^.*topics/[0-9]*#topics/int#g' | sed -e 's#[-A-Za-z0-9]*.png#id.png#g' | sed -e 's#[-A-Za-z0-9]*.jpg#id.jpg#g';
}
url_avg_time(){
less nginx.log | awk '$7=="/"{print $(NF-2)}' | awk 'BEGIN{$1=0}{s+=$1}END{print (s/NR)}';
}
top -b -d 1 -n 10 | grep -i 'Yundun$' | awk '{print $9,$10}{m+=$9;n+=$10}END{print "";print m/NR,n/NR}'
find_error_log(){
awk ‘$9~/404|500/{print $9}’ nginx.log | sort | uniq -c ;
}
find_top_10(){
awk ‘{print $1}’ nginx.log | sort | uniq -c | sort -rn | awk ‘NR<=10’;
}
url_avg_time(){
less nginx.log | awk ‘$7=="/"{print $(NF-2)}’ | awk ‘BEGIN{$1=0}{s+=$1}END{print (s/NR)}’;
}
top -b -d 1 -n 10 | grep -i ‘Yundun$’ | awk '{print $9,$10}{m+=$9;n+=$10}END{print “”;print m/NR,n/NR}
find_error_log
编写一个函数 find_error_log()
找出log中的404 500的报错
find_error_log() {
#awk '$9~/404|500/{print $9}' nginx.log | sort | uniq -c
#grep -e " 500 " -e " 404 " nginx.log |less
}
find_before
找出500错误时候的上下文,找出500错误的前两行,考察grep高级用法
find_before(){
# grep -e ' 500 ' nginx.log | awk '{print($7, $8)}’
}
find_top_10
找出访问量最高的ip, 统计分析,取出top10
find_top_10(){
# awk '{print $1}' nginx.log | sort | uniq -c | sort -rn | awk 'NR <= 10'
}
url_summary
找出访问量最高的页面地址 借助于sed的统计分析
/topics/16689/replies/124751/edit 把数字替换为 /topics/int /replies/int /edit
/_img/uploads/photo/2018/c54755ee-6bfd-489a-8a39-81a1d7551cbd.png!large 变成 /_img/uploads/photo/2018/id .png!large
/topics/9497 改成 /topics/int
其他规则参考如上
输出
url pattern对应的请求数量
取出top 20请求量的url pattern
类似
nnn urlxxx
mmm urlxxx
url_summary(){
}
main_avg_time
统计访问首页路径 / 的平均响应时间
main_avg_time(){
# awk '{print $1}' nginx.log | sort | uniq -c | sort -rn | awk 'NR <= 10'
}
性能统计
打印阿里云盾进程的cpu、mem利用率与平均利用率。
[root@shell.testing-studio.com ~]$ top -b -d 1 -n 10 | grep -i yundun$ --line-buffered | awk '{c+=$9;m+=$10;print $9,$10}END{print "";print c/NR,m/NR}'
0.0 2.0
4.9 2.0
1.0 2.0
2.0 2.0
4.0 2.0
3.0 2.0
2.9 2.0
3.0 2.0
3.0 2.0
3.0 2.0
2.68 2
awk ‘$9~/404|500/{print $9}’ /tmp/nginx.log | sort | uniq -c