Linux 日志查询

这篇具有很好参考价值的文章主要介绍了Linux 日志查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.sed

二.cat

三.tail

四.more

五.less

六.vim

七.时间范围查询


一.sed

sed -n '/2023-06-28 10:08/,/2023-06-28 10:09/p' nohup.out        查询一段时间日志

sed -n '/2023-06-28 10:08/,/2023-06-28 10:09/p' nohup.out > nohup0521.out     查询一段时间日志输出到指定文件

二.cat

根据关键字查看日志cat test.log | grep “新增用户”

根据关键字查看后10行日志cat test.log | grep “新增用户” -A 10

根据关键字查看前10行日志cat test.log | grep “新增用户” -B 10

根据关键字查看前后10行日志,并显示出行号cat -n test.log | grep “新增用户” -C 10
6
查看日志前 50 行cat test.log | head -n 50

查看日志后 50 行,并显示出行号cat -n test.log | tail -n 50

说明:

-A 表示关键字之后,After

-B 表示关键字之前,Before

-C 表示关键字前后,Context


1、查看日志前 n行:
cat 文件名 | head -n 数量

cat log.log | head -n 200  # 查看log.log前200行

2、查看日志尾 n行:
cat 文件名 | tail -n 数量

cat log.log | tail -n 200  # 查看log.log后200行

3、根据关键词查看日志 并返回关键词所在行:
_方法一:_cat 文件名 | grep “关键词”

cat log.log | grep “train”  # 返回log.log中包含train的所有行

_方法二:_grep -i “关键词” 文件名 (与方法一效果相同,写法不同)

grep -i “train” log.log  # 返回log.log中包含train的所有行

三.tail


tail
tail -200f test.log 实时监控200行日志
tail -n 1000 test.log  查询日志尾部最后1000行的日志
tail -n +1000 test.log 查询1000行之后的所有日志
head
head -n 1000 test.log 查询日志文件中的头1000行日志
head -n -1000 test.log 查询日志文件除了最后1000行的其他所有日志

四.more


 more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
more test.log 查看日志

+n  从笫n行开始显示
-n  定义屏幕大小为n行
Enter  向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏

五.less


  less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
less test.log 查看日志

b  向后翻一页
d  向后翻半页
h  显示帮助界面
Q  退出less 命令
u  向前滚动半页
y  向前滚动一行
空格键 滚动一行
回车键 滚动一页

应用场景
场景一:按行号查看---过滤出关键字附近的日志
cat -n test.log |grep "debug"  得到关键日志的行号
cat -n test.log |tail -n +92|head -n 20  选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:
tail -n +100 表示查询100行之后的日志
head -n 20  则表示在前面的查询结果里再查前20条记录
场景二:根据日期查询日志
grep '2021-09-30 16:20:00' test.log 确定日志中是否有该时间点
sed -n '/2021-09-30 16:00:00/,/2021-09-30 16:20:00/p'  test.log 查看时间节点内的日志
注意:日期必须是日志中打印出来的日志,否则无效.\color{red} 注意:日期必须是日志中打印出来的日志,否则无效. 注意:日期必须是日志中打印出来的日志,否则无效.
场景三:日志内容特别多,打印在屏幕上不方便查看

使用more和less命令
cat -n test.log |grep "debug" |more 分页打印,通过空格键翻页
使用 >xxx.txt 将查询到的日志保存到文件中,可以下载这个文件分析
cat -n test.log |grep "debug" >debug.txt

单个关键词高亮显示
tail -f 日志文件 | perl -pe 's/(关键词)/\e[1;颜色$1\e[0m/g'
tail -f catalina.out | perl -pe 's/(DEBUG)/\e[1;34m$1\e[0m/g'

多个关键词高亮显示
tail -f catalina.out | perl -pe 's/(关键词1)|(关键词2)|(关键词3)/\e[1;颜色1$1\e[0m\e[1;颜色2$2\e[0m\e[1;颜色3$3\e[0m/g' 
tail -f catalina.out | perl -pe 's/(DEBUG)|(INFO)|(ERROR)/\e[1;34m$1\e[0m\e[1;33m$2\e[0m\e[1;31m$3\e[0m/g'

字体颜色设置
30-37 黑、红、绿、黄、蓝、紫、青、白 

30m:黑 
31m:红 
32m:绿 
33m:黄 
34m:蓝 
35m:紫 
36m:青 
37m:白
背景颜色设置
40-47 黑、红、绿、黄、蓝、紫、青、白 

40:黑 
41:红 
42:绿 
43:黄 
44:蓝 
45:紫 
46:青 
47:白
其他参数说明
[1; 设置高亮加粗 
[4; 下划线 
[5; 闪烁

例子: 
黄字,高亮加粗显示 
[1;33m 
红底黄字,高亮加粗显示 
[1;41;33m

六.vim

z-enter               移动当前行到屏幕顶端并滚动屏幕
z.                    移动当前行到屏幕中心并滚动屏幕
z-                    移动当前

ctrl-f                forward, 向上滚动一屏
ctrl-b                backward, 向下滚动一屏

ctrl-u                up, 向上滚动半屏
ctrl-d                down, 向下滚动半屏

100z                  将第一百行滚动到屏幕顶端

/                    向下匹配搜索
?                    向上匹配搜索
n                    往同一个方向重复搜索
N                    往相反方向重复搜索

七.时间范围查询

grep '2022-08-20 15:41:[0-59]' logback.log文章来源地址https://www.toymoban.com/news/detail-755467.html

到了这里,关于Linux 日志查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 织梦DedeCMS调用昨天、两天前、某个时间段发布的文章的方法

    某些情况下,我们需要调用昨天发布、两天前发布、某个时间段发布的文章,而织梦默认的只能够调过去X天内发布的文章,那么该如何解决这个问题呢? 打开 /include/taglib/arclist.lib.php 文件 找到: 修改为: 调用方法: [field:title/]{/dede:arclist}//当subday=1的时候调用1天内的文章/

    2024年02月02日
    浏览(46)
  • js 比较当前日期是否在某个是个范围之内(时间段内)

    需求描述:判断当前日期或者指定日期是不是在某个时间段内 借用momentjs库去实现 安装moment 1)有两种方法,一种是vue,另一种是node中 当前日期是否在一个日期时间段内 isBetween isBetween:检查一个 moment 是否在其他两个 moment 之间,可选择检查指定的时间刻度(分钟,小时,日

    2024年02月05日
    浏览(54)
  • docker导出指定时间段内日志

    命令格式如下: 起始时间 :指定要导出日志的起始时间,格式为YYYY-MM-DDTHH:MM:SS。 结束时间 :指定要导出日志的结束时间,格式为YYYY-MM-DDTHH:MM:SS。 容器ID或名称 :指定要导出日志的Docker容器ID或名称。 导出文件路径 :指定导出日志的文件路径和文件名。 例如,要导出容器

    2024年02月06日
    浏览(42)
  • 异步查询如何做节流(只查询时间段最后一次)

    要实现异步查询的节流,只查询时间范围内的最后一次,可以使用一个定时器来延迟执行查询操作,并在每次触发查询时取消之前的定时器。这样,只有在一定时间内没有新的查询请求时,才会执行最后一次查询。 以下是一个示例的JavaScript代码实现: 在这个示例中,thrott

    2024年02月12日
    浏览(42)
  • 常用的两种 MySQL 查询时间段的方法

    在 MySQL 数据库中,经常需要查询某个时间段内的数据。本文将介绍两种常用的 MySQL 查询时间段的方法,并提供相应的源代码示例。 方法一:使用 BETWEEN 运算符 BETWEEN 运算符可用于查询一个范围内的值,包括指定的起始值和结束值。在查询时间段时,我们可以将起始时间作为

    2024年02月05日
    浏览(43)
  • Android 11.0 系统限制上网系列之iptables用IOemNetd实现app某个时间段禁止上网的功能实现

    在11.0的系统rom定制化开发中,对于系统限制网络的使用,在system中netd网络这块的产品需要中,会要求设置app某个时间段禁止上网的功能, liunx中iptables命令也是比较重要的,接下来就来在IOemNetd这块实现app某个时间段禁止上网的的相关功能,就是在 系统中只能允许某个app某个

    2024年02月14日
    浏览(58)
  • SQL 查询两个时间段是否有交集的情况 三种写法

    mysql 写法 其他一样 数据库的字段 start_time, end_time 输入的字段 a,b 第一种  第二种  第三种  三种结果相同 推荐用第三种  200万数据测试 第一种23秒 第三种19秒 总结起来就一句话:最小值 小于等于 最大值 并且 最大值 大于等于 最小值,则一定有交集。

    2024年01月18日
    浏览(65)
  • shell脚本之003获取固定时间段(分钟)内的日志,并将其定时通过sftp上传至服务器中

    #!/bin/bash export PATH=/home/ccbt/software/lftp-4.9.2/usr/local/bin/:$PATH # 获取当前系统时间 now=$(date +\\\"%Y/%m/%d %H:%M:%S\\\") echo \\\"当前日期时间:$now\\\" # 当前时间戳 now_time=$(date +%s) echo \\\"当前时间戳:$now_time\\\" #获取指定开始时间的时间戳 10分钟 time_befo=$(($now_time-600)) echo \\\"指定开始时间戳: $time_befo\\\"

    2024年02月01日
    浏览(56)
  • 常用的时间段的时间戳

    获取 昨天这个时间的时间戳 计算今天0点的时间戳 计算今天23点59分59秒的时间戳 计算昨天0点的时间戳 计算昨天23:59:59 秒的时间戳 计算近7日 0点的时间戳(不包含当天) 计算近30天 0点的时间戳(不包含当天) 计算上月第一天 0点的时间戳 计算上月最后一天 23点的时间戳 计算上周

    2024年02月10日
    浏览(36)
  • 判断两个时间段是否有交集

    前言:项目中遇到了类似会议室预约的时间段被占用,预约车辆时间段被占用等。 start:预约开始时间。 end:预约结束时间。 必备条件:start = end 思考🤔: 怎么判断是否被占用呢? 预约的时间,与目标数据库中任意一条的存在交集,则可以视为占用。 有交集的情况有那几

    2024年02月03日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包