Linux tail 命令与日志查找应用场景技巧(转载)

前言
tail是Linux中的一个常用命令,用于查看文件尾部的内容,它与head命令相对应。我们常用它来查看日志文件,通过-f参数可实时看文件的最新内容。

tail命令格式与参数
格式

tail [选项…] [文件…]
tail [-F | -f ] [-q] [-c # | -n #] [file …]
1
2
注:其中 # 代表数字的意思。

参数解释

参数 解释
-f --follow[={name|descriptor}], 跟踪文件的增长,并实时输出所增长的数据;缺省选项参数可以是’文件名’或’描述符’
-n --lines=K, 输出最后 K 行,也可以使用 -n +K指定从第K行开始输出
-c --bytes=K, 输出最后 K 个字节;也可以使用 -c +K 指定从第K字节开始输出
-q --quiet, 不输出所提供文件的标头
注: 指定 K 时(字节数或行数)如果以+开头,则表示从第 K 行或字节处开始打印;否则,打印文件中的最后 K 项。K 还可以计量单位和乘数后缀的形式指定,如:b 512, kB 1000, K 1024, MB 10001000, M 10241024,GB 100010001000, G 102410241024,以及 T, P, E, Z, Y 等

tail 命令使用场景与日志查找技巧
场景1: 实时查看与关键字的相关的日志
通过-f参数,并配合grep命令,可以实现对文件内容的实时过滤。如:查看前几行、后几行、或前后几行,这时可以通过以下几个参数实现:

-A <显示行数> 除了显示符合匹配内容的那一行之外,并显示该行之后的内容
-B <显示行数> 在显示符合匹配内容的那一行之外,并显示该行之前的内容
-C <显示行数>或-<显示行数> 除了显示符合匹配内容的那一列之外,并显示该列之前后的内容
1
2
3
粟子:
监控info.log日志件,并查看含有迁移关键字的前后5行:

$ tail -f info.log|grep ‘迁移’ -C 5
// 或
$ tail -f info.log|grep ‘迁移’ -5
1
2
3
场景2:实时查看日志
通过-f参数,我们可以实时查看文件的新增内容:

$ tail -f info.log
1
注意:使用-f参数时不会中断文件监视,需要通过ctrl+c手动结束。

场景3:按位置查看文件内容
(1) 查看文件最后30行

$ tail -n -30 info.log
// 或
$ tail -n 30 info.log
// 或
$ tail -30 info.log
1
2
3
4
5
(2) 查看第30行至文件末尾:

$ tail -n +30 info.log
// 或
$ tail +30 info.log
1
2
3
(3) 查询日志文件除了最后30行的其他所有日志

head -n -30 info.log
1
(4) 配合head命令,实现查看文件的第10到20行:

$ head -20 info.log | tail -10
1
场景4:查找关键字附近的日志
首先,获取关键字的行号
#-n 显示行号
cat -n info.log |grep “关键字”
1
2

查找指定行号63829附近的日志
cat -n test.log |tail -n +63820|head -n 20
tail -n +63820表示查询63820行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
1
2
3
场景5:查找所有某种文件里符合条件的字符串
粟子: 在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行

grep test *file
1
结果如下所示:

$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
1
2
3
4
grep 命令同样可以加上 -A 或-B 或-C 的选项
-A是显示匹配后和它后面的n行。
-B是显示匹配行和它前面的n行。
-C是匹配行和它前后各n行。(Context, 上下文)

粟子:搜索info.log文件,找到匹配"@迁移"字串的行,显示该行后后面紧跟的4行。

grep -A 4 “@迁移” info.log
1
场景6:将查找的日志内容分页查看,或输出到一个文件中
(1) 分页查看
如果我们查找的日志很多,打印在屏幕上不方便查看, 使用more和less命令, 如: cat -n info.log |grep “迁移记录” |more 这样就分页打印了,通过点击空格键翻页
(2) 保存到文件中
使用 >xxx.txt将其保存到文件中,到时可以拉下这个文件分析.如:

cat -n info.log |grep “迁移记录” >xxx.txt
1
场景7:根据时间查找日志
可以先 grep ‘2020-06-17 16:17:20’ info.log 来确定日志中是否有该时间点,以确保下面第4步可以拿到日志。这个根据时间段查询日志是非常有用的命令。

#查找2020-07-03 21:21 ~ 2020-07-03 21:22内的日志
sed -n ‘/2020-07-03 21:21/,/2020-07-03 21:22/p’ info.log
#查找2020-07-03 21:21:34 ~ 2020-07-03 21:21:39内的所有日志
sed -n ‘/2020-07-03 21:21:34/,/2020-07-03 21:21:39/p’ info.log

原文链接:https://blog.csdn.net/CPOHUI/article/details/107740294?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-14.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-14.nonecase&request_id=5f29c97d8c9fb674c6722b34

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux tail命令是一种在终端上显示指定文件的最后几内容的命令。通过使用tail命令,你可以查看文件的最新内容,并且当文件更新时,tail命令会自动刷新显示最新的内容。[1] 要使用tail命令,你可以在终端中输入"tail"命令,后面跟上一些选项和参数来指定要显示的数、文件名等信息。下面是一些常用的tail命令的使用方式: 1. 显示文件的最后10(默认值):在终端中输入"tail filename",其中filename是要显示内容的文件名。 2. 显示文件的最后n:在终端中输入"tail -n n filename",其中n是要显示的数,filename是要显示内容的文件名。 3. 监视文件的尾部内容并实时刷新显示:在终端中输入"tail -f filename",其中filename是要监视的文件名。这个命令会持续显示文件的最后几,并且会随着文件的更新而自动刷新显示最新的内容。要退出tail -f命令,可以按下CTRL+C。 除了上述常用的选项之外,tail命令还有其他一些选项,可以用来指定从文件的字节位置、字符位置或块位置开始显示内容。你可以使用"-c Number"、"-m Number"、"-b Number"或"-k Number"这些选项来指定要显示的字符数、多字节字符数、512字节块数或1KB块数。 请注意,tail命令Linux系统中一般位于/usr/bin/目录下。希望这些信息对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [linux tail命令的使用方法详解](https://blog.csdn.net/weixin_34096182/article/details/86385605)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值