Linux日志超实用讲解

本文介绍了在Linux环境中如何使用tail命令动态监听和截取日志,包括动态监听日志、日志动态写入、关键字搜索定位以及日志区间截取。通过实例演示了如何通过grep命令查找关键字并查看前后行,以及使用sed进行日志区间截取。此外,还提到了日志大小的查看方法。
摘要由CSDN通过智能技术生成

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

4、日志大小查看

$ cd /home/

# 查看磁盘分区占用情况
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G   24K  1.9G   1% /dev/shm
tmpfs           1.9G  636K  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1        79G   15G   61G  20% /
tmpfs           379M     0  379M   0% /run/user/0

# 使用此命令在日志目录下使用即可!
# 查看某个目录下各个文件的大小
$ du -ah --max-depth=1
1.5G    ./dtian
48K     ./lighthouse
54M     ./test
12K     ./script
1.6G    .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值