Linux常用的日志分析命令与工具

基础命令


操作


命令


说明


查看文件的内容


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

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


边打印行边打印行号

 

awk程序


操作


命令


筛选行,打印指定列


awk '/google/{print 0,0,6}' access.log | head -10


按条件打印


awk 'length(0)>40{print0)>40{print3}' access.log | head -10


格式化输出


awk '{line= sprintf("method:%s,response:%s", 3,3,7); print line}' access.log | head -10

 

典型的日志分析场景

(1)统计一个文本中包含字符个数

cat access.log |grep /2012/ |wc -l
cat access.log |grep "/message/publishmsg/\|/message/publish/" >test1.log 

(2)查看当天访问排行前10的url
cat access.log | grep “10/Dec/2010″ | awk ‘{print $7}’ | sort | uniq -c | sort -nr | head -n 10

(3)查看apache的进程数
ps -aux | grep httpd | wc -l

(4)访问量前10的IP
cat access.log | cut -f1 -d " " | sort | uniq -c |sort -k 1 -n -r | head -10
cut部分表示取第1列即IP列,取第4列则为URL的访问量

(5)查看最耗时的页面
cat access.log | sort -k 2 -n -r | head -10
按第2列响应时间逆序排序

(6)统计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‘占比expr6==′404′print$6′access.log|wc−l‘占比exprnot_found_line \* 100 / $total_line &&或;可合并为一行。

 

 

时间: 2024-09-21 00:19:58

Linux常用的日志分析命令与工具的相关文章

Linux系统GoAccess Web实时日志分析和统计工具

前几天老左有在军哥和小夜的博客中看到有分享GoAccess这款比较强大的日志分析工具,从功能以及关系数据的用户体验上着实是一款不错的可以用于Linux VPS/服务器中用来对网站日志和用户数据进行分析和统计的工具.就好比很多大型的网站,我们很少有见到有使用网站统计工具的,一般都是通过日志分析用户和各种信息数据的. GoAccess,这款可以用于Linux系统的日志分析工具,可以用于Nginx.Apache等服务器日志处理中,也可以利用Cygwin使用到Windows系统中.一般而言,我们使用Li

linux中nginx日志分析利器GoAccess使用方法

面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记忆能力以外,唯一的作用只有装A或者装C了. 对于nginx日志分析,有很多工具,衡量好坏的标准大概就是三快:安装快,解析快,上手快.满足这三点的goaccess确实是居家必备良药. 话说这个标题其实有点委屈GoAccess了,它是一个日志分析工具,并不只是为nginx使用的.你也可以用它来分析apa

linux中nginx日志分析shell脚本

以前使用虚拟主机的时候,查看网站运行日志,就发现了很多异常的恶意的访问.当时因为自己并没有系统权限没办法对这些行为进行屏蔽.现在有了自己的云主机,前端时间查看日志,又发现了很多恶意访问.正好可以通过最近对shell的学习,来做一个简单的日志分析工具,来屏蔽一些这样的操作. 首先,所谓的分析工具,肯定是建立在人为的分析的基础上的.我们来看一点我的域名运行日志:  代码如下 复制代码 78.56.78.115 - - [21/May/2014:16:54:27 +0800] "POST /wp-lo

监控 Linux 系统的 7 个命令行工具

这里有一些基本的命令行工具,让你能更简单地探索和操作Linux. 深入 关于Linux最棒的一件事之一是你能深入操作系统,来探索它是如何工作的,并寻找机会来微调性能或诊断问题.这里有一些基本的命令行工具,让你能 更简单地探索和操作Linux.大多数的这些命令是在你的Linux系统中已经内建的,但假如它们没有的话,就用谷歌搜索命令名和你的发行版名吧,你会找 到哪些包需要安装(注意,一些命令是和其它命令捆绑起来打成一个包的,你所找的包可能写的是其它的名字).如果你知道一些你所使用的其它工具,欢迎评论

LINUX系统安全日志分析案例

当我们用上面的方法进行了 Linux 服务器的安装和一些基本的设置后,我们的服务器应该说来是比较安全的.但是总是还会有黑客可以通过各种方法利用系统管理员的疏忽侵入我们的系统.他们的一举一动都会记录到系统的日志之中,尽管他们可能可以改变这些日志信息,甚至用自己的程序替换掉我们系统本身的命令程序,但是通过日志我们总还是能找到一些蛛丝马迹.下面我们主要讲一下 Linux 环境中的系统记帐和系统日志管理以及怎么用一些工具更加方便有效的管理日志信息. 1 系统记帐 最初开发的系统记帐用于跟踪用户资源消费情

linux 死机日志分析_unix linux

系统出现死机,一般分为两种情况:一是硬件问题:二是软件问题.  一.硬件问题  可以考虑分析以下几点:  1.不要超频CPU,如果已经超频的先回复到原来的频率  虽然平时运行没有问题,但可能在高负载的使用中就会出现不可预料的故障了.特别是linux系统在某些应用上,是可以把硬件的性能发挥到极限的,但这样的硬件运行Windows可能是没有问题的.  2.确认电源供电充足  必须确保在高负载的状态下,电源可以满足负载.  3.使用memtest86检查内存状态  4.恢复BIOS到默认状态  对于服

Linux下apache日志分析与状态查看方法_Linux

假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] "GET /Public/Css/index.css HTTP/1.1″ 304 – "http://www.a.cn/common/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)" 问题1:在apachelog中找出访问次数最多的1

Linux常用文件权限控制命令

一,查看文件属主属组ls -l [root@localhost app]# ls -l total 302832 drwxr-xr-x. 4 lhc lhc 4096 Nov 18 16:05 apache-phoenix-4.9.0-HBase-1.2-bin -rw-r--r--. 1 root root 279075757 Dec 16 01:47 apache-phoenix-4.9.0-HBase-1.2-bin.tar.gz drwxr-xr-x. 9 root root 4096

linux常用命令加实例大全

目  录引言    1一.安装和登录    2(一)    login    2(二)    shutdown    2(三)    halt    3(四)    reboot    3(五)    install    4(六)    mount    4(七)    umount    6(八)    chsh    6(九)    exit    7(十)    last    7(十一)    动手练习    7二.文件处理    9(一)    file    9(二)    mkd