1、日志分析类:
(1)
cut -d ‘’ -f4 wap_log |sort |uniq -c
比如cpu idle急剧下降,要看一下当前的流量如何,是否是由于流量突增引起。可以使用该命令:
其中wap_log是日志名,4 是时间那一列,简单介绍下这个shell命令。
这是一行实例日志行:
218.203.63.190 – - [09/Feb/2012:12:15:03 +0800] “GET /view/102795.html HTTP/1.1″ 200 4557 “-” “MAUI WAP Browser” “jid=XKYGPzLXwG!70061790;$path=/” 76
在这个shell命令中,cut先根据空格分隔符对日志行进行分割,然后取第4个field,也就是时间,取到时间后,对时间进行排序,排序后,再去重,计数。这样就可以输出每个时间段的日志浏览量。
下面是改shell的输出实例:
18 [09/Feb/2012:12:54:51
14 [09/Feb/2012:12:54:52
11 [09/Feb/2012:12:54:53
10 [09/Feb/2012:12:54:54
12 [09/Feb/2012:12:54:55
15 [09/Feb/2012:12:54:56
11 [09/Feb/2012:12:54:57
第一列是个数,第二列是时间,当然,也可以针对于这个在后面再用awk任意发挥,比如找出浏览量大于x的时间段,等等。这样就可以清楚的看到,每个时间点的请求数,从而判定是否是请求数过大导致。
(2)
cat access_log |awk 'BEGIN{sum=0;count=0;}{sum+=$NF;count++;}END{printf("sum=%d,count=%d,avg=%f\n",sum,count, sum/count)}'
access_log为日志名,用awk切割后,$NF为最后一个域,就是耗时域,所以这条命令的作用就是计算平均耗时。
下面是该shell的实例输出:
sum=3121224,count=96000,avg=32.512750
1、查看当天有多少个IP访问:
awk '{print $1}' log_file|sort|uniq|wc -l
2、查看某一个页面被访问的次数;
grep "/index.php" log_file | wc -l
3、查看每一个IP访问了多少个页面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file
4、将每个IP访问的页面数进行从小到大排序:
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n
5、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'
6、去掉搜索引擎统计当天的页面:
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l
7、查看2009年6月21日14时这一个小时内有多少IP访问:
awk '{print $4,$1}' log_file | grep 21/Jun/2009:14 | awk '{print $2}'| sort | uniq | wc -l
8、统计访问最多的10个ip
awk '{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}' access.log |sort -g |head -10
2、性能分析类:
(1)
ps aux | sort –n –k 5 | tail
得到耗内存最大的10个进程。
ps aux 就不用解释了,后面sort,-n代表按照数字大小进行排序,-k代表排序的key 6 代表第6列,第6列就是占用内存大小列。
下面是输出:
** 11800 0.0 0.0 261652 49316 ? S 2011 3:32 **.
** 11801 0.0 0.0 261652 49316 ? S 2011 3:33 **.
** 11802 0.0 0.0 261652 49316 ? S 2011 3:33 **.
** 11803 0.0 0.0 261652 49316 ? S 2011 3:33 **.
** 11804 0.0 0.0 261652 49316 ? S 2011 3:33 **.
** 11805 0.0 0.0 261652 49316 ? S 2011 3:32 **.
** 25511 0.0 0.0 261652 49316 ? S 2011 1:15 **.
** 25512 0.0 0.0 261652 49316 ? S 2011 0:00 **.
** 28391 1.4 0.5 547488 369664 ? Ssl Jan16 501:58 **
(**为用户名和进程名,已隐藏。)
(2)
ps aux | sort –n –k 4 | tail
同理,这是得到cpu消耗最大的10个进程
strace -o output.txt -T -tt -e trace=all -p 28979
跟踪28979进程的所有系统调用(-e trace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),最后将记录结果存在output.txt文件里面
(3)
lsof
当然lsof不属于性能分析类,但是该命令又经常会用到:
lsof filename
显示开启filename这个文件的进程名
lsof –i:8099
查看开启8099端口的进程
(4)
netstat
查找端口的进程名除了用lsof外,也可以用netstat,
直接netstat –nlp | grep port即可
不过一般只有root权限才可以用lsof,普通用户的话,可以使用/usr/sbin/lsof 不过一般没有太多有价值的信息。
3、其他类:
(1)rsync命令
rsync命令一般用来和线上机同步代码,那他和scp有什么不同呢? 一个是rsync命令可以方便的exclude,scp无法方便的exclude.另外,有一个很重要的不同是,rsync可以保持软链,但scp不能保持软链。就是说,scp在执行过程中,不会识别软链,而是直接当做普通文件夹来处理。另外,比较重要的是,rsync为增量同步,scp为全量
一般同步命令如下:
rsync -av –bwlimit=2000 –progress –exlude=”log” 源地址 目标地址
-av这个参数大家可以到网上搜下,这里就不再详解了,av这个参数,如果没有特殊需求,就把这个参数带上。
–bwlimit是限速,单位是kb
–progress代表是显示同步进度
–exclude代表,不同步的文件夹,这个文件夹是基于源地址的,也就是说比如exclude写的是log,源地址写的是/home/xx/ 那么,不同步的文件夹就是/home/xx/log。
跟踪线上日志定时刷新最新内容
tail
-f path
# 查看
df
-h
查看磁盘io,
iostat
查看磁盘空间
df
-h
统计文件/夹大小
du -sh
查找文件
find
path -name
"*.conf"
-print
#查看防火墙规则
sudo
iptables -L
相关推荐
监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的 数据用于追查定位问题。
监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。 本资料共包含以下附件: 运维必知必会的监控知识体系全梳理.pdf
linux命令操作函数,shell编程等命令一应俱全
监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力,效率最高的方案...
iOS内存暴增问题追查与使用陷阱,非常详细的描述内存问题的调试方法
交换机私接HUB追查,有些公司规定员工宿舍内禁止私接HUB,一些员工心存侥幸心理,有朝一日被发现了,心里很委屈,“网管怎么发现我的呢?”
这个文件追查器可以找出正在使用指定文件的进程,比如,有时候想要删除xxx.mp3文件,可系统会提示:“无法删除xxx.mp3,文件正被另一个程序使用”,而你又不知是哪个程序使用。使用这个追查器可以帮你找出使用者。该...
当线上有 bug 需要排查 bug 时,要最终定位到是哪个类的哪几行代码造成的这个 bug,此时就需要去看到底是哪一次提交的,是谁对这几行代码的修改造成了这次线上 bug,需要去定位责任人,发生时间等。 如果是比较严重...
iOS内存暴增问题追查与使用陷阱.docx编程资料
幼儿园缺勤原因追查制度学校防疫防控中学学生因病缺勤病因追查与登记制度.pdf
监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择。当公司刚刚起步,业务...
产品质量追查单.doc
事故分析追查制度.doc
变电站事故分析追查制度.doc
幼儿园因病缺勤追查制度.doc
来源版块: Web及应用服务器 压缩包内文件格式: 文本内容 附件来源: 互联网 运行平台: Windows平台 是否经本人验证: 是 附件性质: 免费 详细说明: 利用 IIS日志追查网站入侵者
无论是开发测试 还是线上追查问题,代码执行流程往往会提供许多有用的信息,大大提高了开发人员的工作效率;对于系统函数,我们可以用strace 来观察其调用信息,然而PHP却长久以来缺少这么一个行之有效的工具,因此...