分析linux日志常用命令

整理了一些分析linux日志的常用命令:

  • cat:小文件可以用cat打开,大文件用cat会占用过的系统资源。cat -n  可以显示行号
  • more:可以分页展现文件内容,Enter显示下一行,空格键显示下一页,F键显示下一屏内容,B键显示上一屏内容
  • less:

       比more命令更丰富,支持内容查找,并且能高亮显示。/字符串:向下搜索"字符串",?字符串:向上搜索"字符串",

       n:重复前一个搜索(与 / 或 ? 有关),N:反向重复前一个搜索(与 / 或 ? 有关),-i 忽略搜索时的大小写,Q 退出less 命令,

      b (back) 后退一页,f (forward) 或者空格键向前一页

      u:向上翻半页, d向下翻半页
      y:向上一行,回车:向下一行

      从上往下查找关键字:less a.log  > >  /字符串  > >  f或者空格键向下翻页   

      从下往上查找关键字:less a.log  > >  G定位到文件末尾 > > ?字符串 > > b 向上翻页

  • grep字符串查找。查找文件中符合条件的字符串,有的话会把该行打印出来,-c参数可以显示查找到的行数,-i 忽略字符大小写的差别。支持正则表达式,比如grep 'G *T' a.log,表示查找G开头T结尾的字符串。
  • tail:-n 行数,可以显示文件尾的几行,-f 可以查看动态文件
  • head:-n 行数,可以显示文件开头的几行
  • sort:对文件中的某一列排序,然后显示。-k可以指定要排序的列,-t可以指定列的分隔符,默认按照字符序排列的,-n表示按照数字排序,加上-r逆序排序
  • wc:字符统计,-l 统计文件中的行数,-c显示文件中的字节数,-L显示文件中最长行的长度,-w可以查看文件中包含多少个单词。
  • uniq: 用来显示文件中行重复的次数,或者显示仅出现一次的行,以及仅仅显示重复出现的行;uniq的去重针对的只是连续的两行,因此常常与sort结合使用。比如可以先用sort排序,在通过uniq进行去重,-c参数用来在每一行前面显示该行出现的次数,加上-u参数就只会显示出现一次的行,加上-d参数,就只会显示重复出现的行
  • find:文件查找。常常需要修改一个文件,而只知道文件名称,却不知道在哪,或者需要查找一个文件的路径,这个时候就用到了find。比如
    find /home/abc -name a.log
    表示在/home/abc 路径下找名字为a.log的文件的路径,如果是找以log结尾的文件,把a换成*就行了。

       find . -print 递归打印当前目录的所有文件。其中.表示当前目录。使用whereis命令,能够方便的定位到文件系统中可执行文件         的位置。

  • expr:表达式求值。在实际操作中,常常要对表达式求值,使用expr命令,可以对表达式或者字符串进行运算求值。比如 10 \* 3,10 % 3,10 + 10 ,比如:
    expr index "www.qq.com" qq, expr length "www.qq.com"
    shell可能会误解*的含义,所以要要用反斜杠对*转义
  • tar: 归档文件。tar可以生成归档文件,以及将归档文件展开。比如多个日志文件需要从服务器拉倒本地,以及将多个文件从本地上传服务器,使用tar命令是不可避免的。比如:
    tar -cf aa.tar det temp
    将当前目录下的det 和 temp目录打包成aa.tar文件。-c表示生成新包,-f表示包的名称        
tar -tf aa.tar

       -t能列出包中文件名称,-x能对打好的包解压

  • curl: URL访问。功能强大,支持HTTP、HTTPS、FTP、FTPS、Telnet等多种协议,常被用来在命令行下抓取网页和监控web服务器状态。列出一些常用方法: 发起网页请求:curl www.google.com, 加上-i参数,返回带header的文档,-I可以只返回页面的header信息,还可以提交表单,传递cookie信息,构成refer等操作。单条命令难成气候,将不同的命令组合起来或者是编写脚本,威力更大,提高工作效率
  • 查看请求访问量:通过访问日志查看访问量排名前10的IP:
    cat a.log | cut -f1 -d " " | sort | uniq -c | sort -k 1 -n -r | head -10
    页面访问量排名前10的url:
     cat a.log | cut -f4 -d " " | sort | unip -c | sout -k 1 -n -r | head -10 
    命令之间用管道连接起来,摘取访问日志中的列,排序、去重后,再按照出现的次数进行反向排序,取其中前10条数据。 cut命令用来过滤文件中的指定列,列之间用空格分割
  • 查看最耗时的页面:页面的响应时间也是开发人员应该关注的。找出响应慢的前十个页面:
cat a.log | sort -k 2 -n -r | head -10
  • 统计404请求占比:如果404请求过多,可能是系统出了问题,也有可能是有恶意攻击者在进行扫描。500也是如此。下面的命令可以找出404请求占比:
     exprot total_line=`wc -l a.log | cut -f1 -d " " ` && export not_fund_line=`awk 
    
    '$6=='404'{print $6}' a.log | wc -l ` && expr $not_found_line \* 100 / $total_line

    首先计算出a.log的总行数,通过export导出为total_line的变量,然后通过awk命令输出404的请求的行,通过wc -l 统计404请求的行数,导出为not_found_line的变量,最后通过expr命令,计算出not_fount_line乘100除以total_line的值,也就是404请求所占的百分比。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值