学习资料
- 高级Bash脚本编程指南
- LINUX与UNIX SHELL编程指南
- 鸟哥的Linux私房菜
- IBM DeveloperWorks
- 阮一峰的《bash脚本教程》
课程pdf
bash教程.pdf (7.0 MB)
演练服务器
- 主机:shell.testing-studio.com
- 帐号:学员手机号后8位
- 密码:参考每期学员通知
shell编辑器
- vs code
- shell format插件
正则
演练文件
cp /tmp/nginx.log ~/nginx.log
使用less命令替代more与vim来分析文件内容,键入q表示退出交互浏览模式。
文件内容格式
223.104.7.59 - - [05/Dec/2018:00:00:01 +0000] "GET /topics/17112 HTTP/2.0"
200 9874 "https://www.googleapis.com/auth/chrome-content-suggestions" "Mo
zilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15
(KHTML, like Gecko) CriOS/70.0.3538.75 Mobile/15E148 Safari/605.1" 0.040 0.040 .
123.125.71.60 - - [05/Dec/2018:00:00:02 +0000] "GET /yuanyibo/topics?locale=en HTTP/1.1" 200 12164 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" 0.032 0.032 .
IP 空 空 时间戳 用户请求(请求方法 地址 http协议版本) 状态码 字节数 Refer UserAgent 访问速度 访问速度 空
常用分析命令
- less
- sort
- uniq
课间作业
- 日志数据检索
- 日志数据统计
- 数据文件修改并统计
find_error_log
编写一个函数 find_error_log()
找出log中的404 500的报错 考察严谨性,某次训练没有一人做对
回复的时候按照这个格式
find_error_log() {
less nginx.log | grep -E '(" 404 |" 500 )'
less nginx.log | awk '$9~/404|500/'
}
find_top_3
找出访问量最高的ip, 统计分析,取出top3的ip和数量,打印出来。把函数和执行结果贴到回复里。记得使用代码格式化
find_top_3(){
}
url_avg_time
找出首页访问 / 的平均响应时间,把函数与结果打印出来贴到回复里
首页访问示例,get后面的地址是/,每次访问的响应时间是倒数第二个字段
136.243.151.90 - - [05/Dec/2018:00:00:51 +0000] "GET / HTTP/1.1" 200 10088 "-" "Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)" 0.078 0.078 .
url_avg_time(){
}
课后作业 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 10请求量的url pattern
类似
288 url1
3000 url2
url_summary(){
}