linux截取文件特定行,截取与分析日志文件的特定行数的操作

在进行操作系统和数据库系统管理时,经常会遇到在日志文件中查找某个字符,或者按照时间截取某个时间段的日志进行分析。

今天早上就遇到一个MySQL数据库上的问题,mysql数据库在0-3点的时候,数据库会话连接,tps,cpu和iowait等都比平时大了许多。

为了定位这个时间段内,到底发生了那些慢查询,消耗了资源,就需要在slow.log慢查询日志进行查询,截取和分析。

在处理过程中,对几种常用的日志截取方法进行了汇总和测试:

截取日志段的的方法汇总与测试

方式一: 确定时间段的行号,使用head和tail命令截取

搜索时间: Time: 151212 00:00:00

先到gg,到文件最前面,然后搜索 /Time: 151212  ,得到:

1979016 # Time: 151212  0:00:15

文件总行数为:

# wc -l slow-query-169-1212.log

1999422 slow-query-169-1212.log

1999422                                 limit 0,20;

然后在到文件最后面,G, 搜索4点之后开始的文件  /Time: 151212  4   ,得到:

1987392 # Time: 151212  4:00:05

确定需要查询的时间段行号后,使用head和tail命令进行截取:

>>> 1987392 - 1979016;

8376

你可能感兴趣的:(linux截取文件特定行)