发表于: 2017-09-19 23:47:00
1 794
今天完成的事
结束任务三
学习awk命令
awk与其说是命令,倒不如说是一种分割文本查询的语言,这次编写脚本统计脚本真的体会到了它的强大,而且内容简单易懂,容易掌握 参考资料:http://www.runoob.com/linux/linux-comm-awk.html
学习grep命令
grep查询命令知识点更少,这里简单说一下grep与awk的区别:
grep基本是以行为单位处理文本的, 而awk可以做更细分的处理,通过指定分隔符将一行划分为多个字段,以字段为单位处理文本。awk中支持C语法,可以有分支条件判断、循环语句等,相当于一个小型编程语言。
awk功能比较多是一个编程语言了。 grep功能简单,就是一个简单的正则表达式的匹配。 awk的功能依赖于grep。
grep可以理解为主要作用是在一个文件中查找过滤需要的内容。awk不是过滤查找,而是文本处理工具,是把一个文件处理成你想要的格式
从用处来讲 grep 主要用于搜索某些字符串,awk 用于处理文本
演习小课堂:发现了不少问题,明天上午更改一下稿子和PPT
编写统计时间脚本
编写脚本参考了师兄的日报中的脚本,看了awk和grep之后就能看懂这个脚本了,就趁热打铁把脚本写出来了
#!/bin/bash
#this is time bill for your nginx and project
#create at 2017/9/19 by yaheng
#数据库响应时间统计
cd /usr/local/web-home/logs/nginx-time
#首先抓取日志中数据库响应时间
echo "数据库响应时间统计:"> time.txt
cat /usr/local/web-home/logs/info/info.log|grep 'jnshu.service.' > DB-time.txt
echo "数据库响应时间在10ms以内的为:" >> time.txt
cat DB-time.txt | awk 'BEGIN{sum=0}{if($14<10)sum++;} END{print sum}' >>time.txt
echo "数据库响应时间在10-50ms以内的为:" >>time.txt
cat DB-time.txt | awk 'BEGIN{sum=0}{if(($14>=10)$$($14<50)) sum++;} END{print sum}' >> time.txt
echo "数据库响应时间在50-100ms以内的为:" >> time.txt
cat DB-time.txt | awk 'BEGIN{sum=0}{if(($14>=50)$$($14<100)) sum++;} END{print sum}' >> time.txt
echo "数据库响应时间在100ms以上的为:" >> time.txt
cat DB-time.txt | awk 'BEGIN{sum=0}{if($14>=100) sum++;} END{print sum}' >> time.txt
#Nginx服务器响应时间统计
echo "nginx响应时间(划分时间)" >>time.txt
echo "响应时间在20s以内的为:" >> time.txt
cat /usr/local/nginx/logs/access.log | awk 'BEGIN{sum=0}{if($9<20) sum++;} END{print sum}' >> time.txt
echo "响应时间在20-50ms以内的为:" >> time.txt
cat /usr/local/nginx/logs/access.log | awk 'BEGIN{sum=0}{if(($9>=20)&&($9<50)) sum++;} END{print sum}' >> time.txt
echo "响应时间在50-100ms以内的为:" >> time.txt
cat /usr/local/nginx/logs/access.log | awk 'BEGIN{sum=0}{if(($9>=50)&&($9<100)) sum++;} END{print sum}' >> time.txt
echo "响应时间在100ms以外的为:" >> time.txt
cat /usr/local/nginx/logs/access.log | awk 'BEGIN{sum=0}{if($9>=100) sum++;} END{print sum}' >> time.txt
echo "统计完成" >>time.txt
统计的效果图放上来
这个脚本真的是棒,集成了awk语言 shell语言 正则表达式 难度很大,但是写出来了 很开心
使用TOP命令查看cpu使用和内存使用
TOP命令难度也不大,主要是要认识top里面的内容 找个博客看一下就能明白了,跟PC的任务管理器很像
其中
Tasks代表进程
%Cpu代表cpu使用情况
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断
st: 实时
Mem代表内存:分别表示了内存总量、空闲内存量、当前使用量、以及缓冲使用中的内存量;
遇到的问题:
不会查awk分割的字段数,查了好多遍才查对,需要注意的是使用默认空格分隔的话多个空格也只带表分割一次
运行脚本一直说 not fund 刚开始怀疑是查字段数查错了,反复修改之后才发现是数据库响应时间后面紧跟着 ms 自作聪明加上的 又给去掉了
在IDEA更改去掉ms之后,重新部署项目又报not fund 结果发现是log4j路径没改 没打出来日志
明天的计划:
更改小课堂PPT内容
博涛师兄让我看一下nginx的日志格式配置的资料,看了这个就能看懂打的日志是什么内容了
找师兄讲解任务4,开始任务4不墨迹
收获:加班到马上三点了,收获了黑眼圈,但是本来感觉很难的脚本写出来了,高兴,不瞌睡
深度思考:
1.nginx服务器有什么作用?什么叫反向代理?为什么要使用反向代理?(这个明天小课堂要讲,不写了)
2.什么是ssh?如何在linux服务器上从网站下载文件?
SSH是英文Secure Shell的简写形式。通过使用SSH,可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的"通道"。
简单的说就是一种加密协议
3.如何写shell脚本?尝试自己编写一个简单脚本。
先学习shell语言,再开始写,其实就是多个命令的集合体而已
4.tomcat、jetty、resin各容器有什么区别?如何优化这些容器配置?
这个我总结总结再写到以后的日报里吧
任务进度:任务三结束
任务开始时间:2017/9/10
预计结束时间:2017-9-17
第二次延期至2017-9-20
禅道:http://task.ptteng.com/zentao/task-view-9387.html
ps 深夜效率爆棚,明天找相博要包coffe喝
评论