常用linux命令----查日志(2)

查日志的基本命令

1. tail

Linux 下查看日志时,使用tail -f可以不断的刷新日志信息。

此时要想暂停刷新,使用ctrl+s暂停终端
要是想继续终端,使用ctrl+q

若想退出tail命令,直接使用ctrl+c
tail -f catalina.out		   //实时监控文件输出
tail -n 10 test.log            // 查看test.log  最后10行日志
tail -n +10 test.log		   // 查看test.log  从第10行之后的所有日志
tail -f -n 100 catalina.out    // 打印当前最后100行,并实时刷新日志(1)
tail -f catalina.out -n 100    // 打印当前最后100行,并实时刷新日志(2)
tail -f -n +100 catalina.out   // 打印第100行之后的所有日志,并实时刷新(1)
tail -f catalina.out -n +100   // 打印第100行之后的所有日志,并实时刷新(2)

2. head

head catalina.out -n 100       // 查看前面100行日志记录

3. cat

cat -n test.log | grep "关键词"                       // 查看到关键词相关日志及行号
cat -n test.log | grep "关键词" | more                // 分页显示,按空格键可翻页,按q退出
cat -n test.log | grep "关键词" | less                // 分页显示,按空格键可翻页,上下键前后滚动显示, 按q退出
cat -n test.log | tail -n +10000 | head -n 100          // 从10000开始,显示10000行到10099行的日志记录

4. tac(反向列示)

tac 是将 cat 反写过来,所以他的功能就跟 cat 相反,cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!

5. sed

sed -n '200,500p' test.log                                           // 从200行开始,显示200行到500行的日志记录
sed -n '/2017-10-11 00:00:00/,/2017-10-11 01:23:23/p' test.log       // 查看某一时间段内的日志记录(两个日期必须在日志中存在,不然会是失效)

6. grep

grep "关键词" test.log --color=auto				      // 查询文件中关键词所在行,并把关键词高亮显示
grep "关键词" -A 10 -B 20 test.log                      // 查询文件中关键词所在行,及前20行后10行的
grep "关键词" -C 10 test.log                      		// 查询文件中关键词所在行,及前后10行的
tail -f catalina.out | grep "关键词" --color=auto     // 实时日志记录中,过滤只显示包含关键词的日志,并将关键词设置高亮
tail -f catalina.out | grep -v "关键词"               // 反向查找,查询实时日志中不包含关键词的行的
grep '2019-04-26 14:4[0-5]' catalina.out --color      // 模糊匹配,查询2019-04-26 14:40 到 2019-04-26 14:45 的日志高亮显示

grep -E "word1|word2|word3"   catalina.out     // 满足任意条件(word1、word2和word3之一)将匹配。
grep word1 catalina.out | grep word2 | grep word3     // 必须同时满足三个条件(word1、word2和word3)才匹配。

查看命令实战场景

1. 应用场景一:按行号查看---过滤出关键字附近的日志

   (1) cat -n test.log |grep "debug"  得到关键日志的行号

   (2) 查看文件的几行到几行
	
	  sed -n '10,10000p' /var/lib/mysql/slowquery.log > temp.log       查看10到10000行并输出到temp.log中


2. 应用场景二:根据日期查询日志

     (1) sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

      特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;

3.应用场景三:日志内容特别多,打印在屏幕上不方便查看

    (1)使用more和less命令,

           如: cat -n test.log |grep "debug" |more     这样就分页打印了,通过点击空格键翻页

    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析

            如:cat -n test.log |grep "debug"  >debug.txt
          
            
  4.应用场景四:查看某段时间内的关键字日志
  
     (1)   sed -n '/2019-04-26 14:40:35/,/2019-04-26 14:45:35/p' catalina.out | grep 'keywords' --color
     
	 (2)   grep '2019-04-26 14:4[0-5]' catalina.out --color

统计接口次数命令

统计一个接口调用次数
grep "getGoodsInfoList.action"  scte.log.20220804 | wc -l

统计每个接口调用次数(降序排列,20是个数) 该命令必须是access文件才有用
awk '{print $7}' localhost_access_log2023-05-20.txt |sort -n|uniq -c|sort -rn|head -20

将统计结果输出到文件(降序排列,20是个数) 该命令必须是access文件才有用
echo | awk '{print $7}' localhost_access_log.2021-11-03.txt |sort -n|uniq -c|sort -rn|head -20 > times.txt 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值