发表于: 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喝







返回列表 返回列表
评论

    分享到