学习资料
- 高级Bash脚本编程指南
- LINUX与UNIX SHELL编程指南
- 鸟哥的Linux私房菜
- IBM DeveloperWorks
- 阮一峰的《bash脚本教程》
实战内容
- 日志数据检索
-
find_error_log
编写一个函数 find_error_log()
1.找出log中的404 500的报错 个数考察严谨性- awk '$9~/404|500/{print $9}' nginx.log |sort|uniq -c .2.找出500错误时候的上下文 考察grep高级用法
- grep -C 2 ' 500 ' nginx.log
- 日志数据统计
- 找出访问量最高的ip top10统计分析
- awk '{print $1}' nginx.log|sort -nr|uniq -c|sort -nr|head -10
- 找出访问量最高的ip top10统计分析
- 数据文件修改
- 找出访问量最高的页面地址 借助于sed的统计分析
-
- awk -F " " '{print $7}' nginx.log | sed -e 's#/topics/[0-9]*/replies/[0-9]*/edit#/topics/int/replies/int/edit#g' |sed -e 's#/_img/uploads/photo/2018/[0-9a-zA-Z]*-.*#/_img/uploads/photo/2018/id.png!large#g'|sed -e 's#/topics/[0-9]*#/topics/int#g'|sort -nr -t'/'|uniq -c|sort -rn |head -20
- url_avg_time
-
统计访问首页路径 / 的平均响应时间
- less nginx.log |awk '$7=="/"{print $0}'|grep -n '/'|awk '{t+=$(NF-2)}END{print t/NR}'
-
性能统计
打印阿里云盾进程的cpu、mem利用率与平均利用率。
- top -b -d 1 -n 10|grep -i 'aliyundun$' --line-buffered |awk '{c+=$9;n+=$10;print $9,$10}END{print ""; print "CPU平均使用率为:" c/NR,"平均内存使用率:"n/NR}'