栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Linux日志超实用讲解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux日志超实用讲解

Linux日志超实用讲解
    • 1、前言
    • 2、tail 命令
      • 2.1、动态监听日志
      • 2.2、日志动态截取
    • 3、日志定位截取
      • 3.1、关键字收索定位
      • 3.2、日志区间截取

1、前言

Linux相对于Windows有更高的网络安全性,最主要是其在网络环境下强大的稳定性,所以应用服务多部署于Linux内核系统的服务器上。导致Linux上日志的查询处理更是家常便饭!

2、tail 命令 2.1、动态监听日志

tail -f 日志文件名,动态打印日志文件最后10行,会进行动态监听,在服务器上多用于使用监听幂等操作的日志;

举例:如果一个查询操作报错,那么就可以首先在对应服务日志文件处使用此命令监听,然后再操作报错的查询,那么就能动态监听其打印的日志,由于查询操作并不会改变数据,所以在生产环境即使被操作多次也无妨!

# 进入日志目录
$ cd /data/logs/UserData/run/

# 动态查看日志最后10条
$ tail -f run_UserData_172.17.0.1_10007.log

# 从日志尾部往上截取20条
$ tail -20 run_UserData_172.17.0.1_10007.log 
2.2、日志动态截取

tail -f 日志文件名 > 自定义文件,使用此命令会可将监听到的日志动态的写入到自定义的文件中,使用Ctrl + c 结束写入。

举例:遇到同上2.1的问题,规范的管理流程,生产环境是由运维人员进行管理的,开发人员是无权访问的。如果生产环境出现问题,那么报错日志就需要运维人员截取给开发人员!

# 将日志动态写入自定义文件 user.log
# 如果没有user.log则会自动创建,如果存在内容则会被覆盖
$ tail -f run_UserData_172.17.0.1_10007.log > user.log


# 追加写入:会从user.log的内容尾部开始写入,不会覆盖掉原有内容
$ tail -f run_UserData_172.17.0.1_10007.log >> user.log

3、日志定位截取 3.1、关键字收索定位

通过管道命里组合查询:cat 日志文件 | grep -n 搜索内容

$ cat UserData_172.17.0.1_10007.log | grep -n 学校组织机构同步开始
19645:2022-07-21 03:30:01.140 1 scheduling-1 INFO c.a.s.d.p.t.SchoolDataSyncTask:104 - 学校组织机构同步开始=====

推荐使用:使用grep可以满足通用情况所有日志快速定位查询!

定位查询并显示行号:grep -n '关键词' 文件名

$ grep -n '学校组织机构同步开始' run_UserData_172.17.0.1_10007.log
19645:2022-07-21 03:30:01.140 1 scheduling-1 INFO c.a.s.d.p.t.SchoolDataSyncTask:104 - 学校组织机构同步开始=====

# 截取时间关键字,并显示行号
$ grep -n '2022-07-21 03:30:01' run_UserData_172.17.0.1_10007.log
19645:2022-07-21 03:30:01.140 1 scheduling-1 INFO c.a.s.d.p.t.SchoolDataSyncTask:104 - 学校组织机构同步开始=====
19646:2022-07-21 03:30:01.281 1 scheduling-1 INFO c.a.s.d.p.u.BoShiLeServiceUtil:53 -

关键字前后查指定行数:grep -B|A|C 行数 '关键词' 文件名

# 关键字前查两行
$ grep -B 2 '学校组织机构同步开始' run_UserData_172.17.0.1_10007.log

# 关键字后查两行
$ grep -A 2 '学校组织机构同步开始' run_UserData_172.17.0.1_10007.log

推荐使用:查询关键前后几行,一般用于报错日志的查询,对异常关键字进行检索,报错信息的处理通常是前后日志一起排查!

# 关键字查看前后2行日志
$ grep -C 2 '学校组织机构同步开始' run_UserData_172.17.0.1_10007.log

# 如果内容太长,写入自定义文件后查看
$ grep -C 2 '学校组织机构同步开始' run_UserData_172.17.0.1_10007.log > user.log

3.2、日志区间截取

之前已经讲到了关键字查询显示行号,在代码层关键位置会有日志标记,将其关键字检索出行号,进行行号区间日志截取、时间区间日志截取!

# 截取19646~19846区间的200行数据
$ sed -n '19646, 19846p' run_UserData_172.17.0.1_10007.log 

# 写入自定义文件查看
$ sed -n '19646, 19846p' run_UserData_172.17.0.1_10007.log > user.log


# 截取自定义时间段
$ sed -n '/2022-07-21 03:30:01/, /2022-07-21 03:32/p' run_UserData_172.17.0.1_10007.log > user.log
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023609.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号