linux查看日志文件等一些操作

linux查看日志文件

一.查看日志:
查看日志常用命令
tail:
-n 是显示行号;相当于nl命令;例子如下:
tail -100f test.log 实时监控100行日志
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
head:
跟tail是相反的,tail是看后多少行日志;例子如下:
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
cat:
tac是倒序查看,是cat单词反写;例子如下:
cat -n test.log |grep “debug” 查询关键字的日志

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

 1)cat -n test.log |grep "debug"  得到关键日志的行号
 2)通常查找出错误日志 cat error.log | grep 'nick' , 这时候我们
  还有个需求就是输出当前这个日志的前后几行:
    cat error.log | grep -B 5 'nick' 显示nick及前5行
    cat error.log | grep -A 5 'nick' 显示nick及后5行
    cat error.log | grep -C 5 'nick' 显示file文件里匹配nick字串
     那行以及上下5行
    cat error.log | grep -n -B10 -A10 5 'nick' 显示file文件里
     匹配nick字串前后10

应用场景二:选取日志中特定范围进行分析

  1)cat -n test.log |tail -n +1000|head -n 20   
     从第1000行开始,显示20行
     tail -n +1000表示查询1000行之后的日志
     head -n 20 则表示在前面的查询结果里再查前20条记录
  2)cat catalina.out | head -n 1400| tail -n +1350   
  显示1350行到1400行 (实现原理都差不多,就是通过语法糖)
1)按日期截取 :一般在日志系统中都会记录打印日志的时间,通常我们
 非常需要查找指定时间端的日志:
   sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
   特别说明:该命令中的两个日期值必须是日志文件中包含的值,否则该命令无效; 
    先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点
(2)按行数截取
  sed -n ‘10000,20000p’ test.log                
   sed -i '/关键词/d' catalina.out  删除包含关键词的行

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

  (1)使用more和less命令,
           如: cat -n test.log |grep "debug" |more     
            这样就分页打印了,通过点击空格键翻页
    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
            如:cat -n test.log |grep "debug"  >debug.txt

使用管道进行and or条件处理
  and 使用管道实现 例如: grep -n ‘日志排查’ test.log | grep ‘日志’
  or 用-E 例如:grep -n -E ‘日志排查|hello’ test.log 满足两个关键字的都可以找出来。

Linux日志中查找关键字及其前后信息的方法

可以通过 tail 命令实时查看日志,也可以通过 cat 等命令查看日志信息。
但现在我们要讨论的是,如何从日志中通过关键字过滤出我们想要的内容,主要以 cat 命令来进行学习。
假设存在日志文件 hrun.log,查询的关键字为"新增用户":
根据关键字查看日志

cat hrun.log | grep "新增用户"

根据关键字查看后10行日志

cat hrun.log | grep "新增用户" -A 10

根据关键字查看前10行日志

cat hrun.log | grep "新增用户" -B 10

根据关键字查看前后10行日志,并显示出行号

cat -n hrun.log | grep "新增用户" -C 10

查看日志前 50 行

cat hrun.log | head -n 50

查看日志后 50 行,并显示出行号

cat -n hrun.log | tail -n 50

说明:

-A 表示关键字之后,After
-B 表示关键字之前,Before
-C 表示关键字前后,Context

linux查询历史操作命令如何模糊匹配

例如:查询包含 “mysql” 的命令(如下):

history | grep 'mysql'

包括命令 历史序号 命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值