读书笔记-在线日志分析的常用命令

摘自《大型分布式网站架构设计与实践》 4.1在线日志分析

1.基础命令

操作 命令 说明
查看文件的内容 cat -n access.log -n显示行号
分页显示文件 more access.log Enter下一行,空格下一页,F下一屏,B上一屏
分页显示文件 less access.log 输入 /字符串 可查找并高亮
显示文件尾 tail -n2 -f access.log -n2显示最后2行,-f继续监听不退出
内容排序 sort -k 2 -t ‘ ‘ -n access.log -k指定排序列,-t指定列分隔符,-n按数字顺序
字符统计 wc -l access.log -l统计行数,-c字符数,-L最长行长度,-w单词数
查看重复出现的行 sort testfile | uniq -c -d uniq去重,-c统计重复次数,-d只显示重复的
字符串查找 grep ‘G.*T‘ access.log 查找G开头T结尾的字符串
文件查找 find /home/java -name access.log 递归/home/java的子目录找名为access.log
表达式求值 expr 10 \* 3 计算10*3,其中\*表示转义*不解读为通配符
表达式求值 expr length "this is a test" 计算长度
归档文件 tar -cf aaa.tar f1 f2 -c创建,-f指定包名
归档文件 tar -xf aaa.tar -x解压
URL访问 curl www.google.com 不带参返回响应体,-i返回带响应头,-I仅返回响应头
查看CPU的load uptime  
查看CPU使用率 top | grep Cpu 按1查看每个核,按shift+H按线程查看
查看CPU使用率 top -p 2864 查看指定进程
磁盘剩余空间 df -h  
磁盘剩余空间 du -d 1 -h /home/java 分析目录的磁盘使用。-d设置递归深度
网络traffic sar -n DEV 1 1 DEV查看各个网卡,1秒抽样,1总共取一次
磁盘I/O iostat -d -k  
内存使用 free -m 通常是看“-/+ buffers/cache”对应的used和free
内存使用 vmstat 查看swap I/O

2.sed编辑器

操作 命令 说明
文本替换 sed ‘s/xxx/yahoo/‘ access.log | head -10 不会修改原文件
输出指定的行 sed -n ‘2,6p‘ access.log 输出2-6行
删除行 sed ‘/qq/d‘ access.log /d排除含关键字qq的行
整行替换 sed -e ‘/google/c\hello‘ access.log | head -10 /c替换的是整个匹配的行
多个命令合并 sed -n ‘1,5p;1,5=‘ access.log 边打印行边打印行号

3.awk程序

操作 命令
筛选行,打印指定列 awk ‘/google/{print $0,$6}‘ access.log | head -10
按条件打印 awk ‘length($0)>40{print $3}‘ access.log | head -10
格式化输出 awk ‘{line= sprintf("method:%s,response:%s", $3, $7); print line}‘ access.log | head -10

4.实用例子

操作 命令 说明
查看请求访问量    
访问量前10的IP cat access.log | cut -f1 -d " " | sort | uniq -c |sort -k 1 -n -r | head -10 cut部分表示取第1列即IP列,取第4列则为URL的访问量
查看最耗时的页面 cat access.log | sort -k 2 -n -r | head -10 按第2列响应时间逆序排序
统计404请求的占比    
总请求数 export total_line= `wc -l access.log | cut -f1 -d " "`  
404请求数 export not_found_line= `awk ‘$6==‘404‘{print $6}‘ access.log | wc -l`  
占比 expr $not_found_line \* 100 / $total_line &&或;可合并为一行。
时间: 2024-09-30 20:50:55

读书笔记-在线日志分析的常用命令的相关文章

在线日志分析

通过日志分析的命令和脚本,筛选日志中有价值的内容,可以分析得出系统产生问题的原因. 一.日志分析常用命令 1.查看文件的内容cat -n 2.分页显示文件more enter 显示文件下一行.空格键显示下一页.f键显示下一屏.b键显示上一屏 less 支持/查找 3.显示文件尾tail -n -f 4.显示文件头head -n 5.内容排序sort -n数字排序 -r逆序 -t分隔符 -k 第几列eg:192.168.142.56 - - [09/Mar/2016:16:42:59 +0800]

Linux学习日志之Linux常用命令总结

Linux常用命令: 练习3遍以上,命令有点多,建议慢慢查看 一.命令基本格式 1.命令格式: [root(管理员)@localhost(主机名)~]#(超级用户提示符,普通用户提示符是$) adminis /root一级目录用pwd print working directory(打印工作目录)查看 /home/user1/二级目录 [[email protected] ~]# cd /usr/local/src/ 切换当前目录 [[email protected] src]# 命令[选项]

Linux 查看日志的时候常用命令总结

Linux ~ 查看日志的常用命令总结 1.tail -n <行数>,显示文件的尾部n行内容. -f 循环读取,常用于查阅正在改变的日志文件. ① tail   -f  test.log     实时显示test.log文件里的最尾部的内容,只要test.log更新就可以看到最新的文件内容. ② tail -100f    test.log   实时监控100行日志. ③ tail  -n  100  test.log   查询日志尾部最后100行日志内容. ④ tail  -n  +100 

04.学习笔记-文件及文本管理常用命令

目录管理 ls.pwd.cd.mkdir.rmdir.tree mkdir:创建空目录 -p 如果创建目录的父目录不存在,创建父目录 -v 显示目录创建过程 例:[[email protected] /]# mkdir -pv /usr/bin/abc/a mkdir: 已创建目录 "/usr/bin/abc" mkdir: 已创建目录 "/usr/bin/abc/a" rmdir:删除目录且为最下层目录 -p 如父目录下无其他文件目录,则一并删除 -v 显示目录删

Linux学习笔记(8)Linux常用命令之网络命令

(1)write write命令用于给指定用户发信息,以Ctrl+D保存结束,所在路径为/usr/bin/write,其语法格式为: write [用户名] 注:只能给在线用户发送. 例:新建ws用户,root远程端向ws远程端发送hello信息. root端: [[email protected] cdrom]# write ws hello ws端: [[email protected] ~]$ Message from [email protected] on pts/1 at 03:58

Linux学习笔记(3)Linux常用命令之文件处理命令

Linux的命令格式一般为:命令 [-选项] [参数],如ls -la /etc,需要注意几点:1)个别命令使用不遵循此格式:2)当有多个选项时,可以写在一起:3)存在简化选项(-)与完整选项,如-a等于-all. (1)ls ls命令的作用是显示目录文件,原意是list,所在路径为/bin/ls,所有用户均可执行.其相关语法如下: ls 选项[-ald] [文件或目录] 其中: -a:显示所有文件,包括以"."开头的隐藏文件 -l:以长格式(long)显示详细信息 -d:原意为dir

在线日志分析项目解读

1,日志的采集 从flume agent 上的数据一般分到两条线上一条是kafka 集群 ,后期可以用流式处理(spark streaming 或storm 等等)一条是到hdfs,后期可以用hive处理, 业界叫lambda架构 architecture (一般公司的推荐系统,就是用这种架构) flume-ng agent 采集收集日志后,聚合在一个节点上(也可以不聚合) 为什么要聚合?为什么不直接写到kafka集群? 假如公司规模比较大,有无数个flume节点,这么多都连kafka,会增加复

docker学习笔记(五)——Docker常用命令总结

1. 开启/停止/重启container(start/stop/restart) 容器可以通过run新建一个来运行,也可以重新start已经停止的container,但start不能够再指定容器启动时运行的指令,因为docker只能有一个前台进程.容器stop(或Ctrl+D)时,会在保存当前容器的状态之后退出,下次start时保有上次关闭时更改.而且每次进入attach进去的界面是一样的,与第一次run启动或commit提交的时刻相同. CONTAINER_ID=$(docker start 

Linux学习笔记之目录和文件管理常用命令

Linux命令格式: 命令 选项 参数(命令的作用对象) 段选项 -  多个选项可以组合 长选项 -- Linux文件类型: -:普通文件 d:目录文件 b:块设备文件(block) c:字符设备文件(character) l:符号链接文件(symbolic link file) p:命令管道文件(pipe) s:套接字文件(socket) 1.cd(change directory):切换工作目录(工作目录是指当前所在的目录) 目录的切换可以使用绝对路径和相对路径: 绝对路径是文件或目录所在的