日志大文件拆分

前言

生产环境没设置好日志文件大小的最大值,导致日志文件过大,普通编辑器根本没法打开,要排查日志改怎么办,拆分日志大文件!

如何拆分

split命令专门用来将一个大文件分割成很多个小文件,我把split命令的选项做一个简要说明

选项含义
-b分割后的文档大小,单位是byte
-C分割后的文档,单行最大byte数
-d使用数字作为后缀,同时使用-a length指定后缀长度
-l分割后文档的行数
按照行数拆分

假设文件test.txt有n多行,每2行拆分为一个文件,使用-l参数即可:

$ split -l 2 test.txt 
$ ls -al
-rw-r--r-- 1 root root 32 Aug 31 16:55 test.txt
-rw-r--r-- 1 root root 20 Aug 31 16:55 xaa
-rw-r--r-- 1 root root 12 Aug 31 16:55 xab

仔细一看,拆分后的文件名难以描述啊。

能不能好好命名一下呢?

规范命名

使用-d参数可以用数字作为新的文件后缀:

$ split -l 2 test.txt -d
$ ls
test.txt  x00  x01  x02

还可以用-a指定后缀数字的长度(默认是2):

$ split -l 2 test.txt -d -a 4
$ ls
test.txt  x0000  x0001  x0002

不过开头的x实在看不顺序,我们还可以指定前缀,比如指定前缀为test:

$ split -l 2 test.txt -d -a 4 test
$ ls
test0000  test0001  test0002  test.txt

而且你还可以从指定数字下标开始,使用--numeric-suffixes,例如从0004开始:

$ split --numeric-suffixes=4 test.txt -a 4 -l 2
test.txt  x0004  x0005
按照大小拆分

使用-b参数来按照大小来拆分,单位为字节:

$ split -b 10 test.txt

当然还可以使用k(千字节),m(兆)。即:

$ split -b 10k test.txt
分割成指定数量文件

使用-n参数即可,比如无论大小,行数,拆分为3个文件:

$ split -n 4 test.txt
$ test.txt  xaa  xab  xac  xad

其它拆分文件方式 

拆分日志文件的特定行,然后重定向到新的日志文件中

sed实现分割

实现原理就是用sed截取特定行之间的内容,然后进行重定向。

sed -n '1,2000000p' test.log > test.log.1
sed -n '2000001,4000000p' test.log > test.log.2
sed -n '4000001,6000000p' test.log > test.log.3
sed -n '6000001,8000000p' test.log > test.log.4
sed -n '8000001,$p' test.log > test.log.5
 awk实现分割

实现原理和sed差不多,因为使用awk不多,这里只举一个小例子:

awk ‘{if (NR<120000) print $0}’ test.log > a.txt
awk ‘{if (NR>=120000) print $0}’ test.log > b.txt

参考文章:Linux下如何拆分大的日志文件?-腾讯云开发者社区-腾讯云

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Log文件拆分是一种将大型日志文件按照一定规则分割成多个较小文件的工具。Log文件通常在长时间的运行过程中会不断累积,如果一直保存在一个文件中,不仅会占用大量存储空间,而且对后期检索和分析日志数据也不方便。因此,使用Log文件拆分工具可以将大文件按照时间、大小、关键字等条件拆分成多个较小的日志文件,提高存储效率和操作灵活性。 Log文件拆分工具的主要功能包括: 1. 按照时间进行拆分:将大文件按照指定的时间间隔进行拆分,例如每天、每小时、每分钟拆分一个新的日志文件。这样可以方便地按照时间范围检索和分析日志。 2. 按照大小进行拆分:根据设定的文件大小限制,将大文件自动拆分成多个较小的文件。这样可以防止单个日志文件过大导致存储空间不足或日志读写效率低下的问题。 3. 按照关键字进行拆分:根据设定的关键字或正则表达式,将包含特定关键字的日志条目拆分到新文件。这样可以根据不同的关键字对日志进行分类和分析,以便更好地定位和解决问题。 4. 压缩和归档:拆分后的日志文件可以进行压缩和归档,以节省存储空间并便于长期保存和备份。 通过使用Log文件拆分工具,我们可以更好地管理和分析大型日志文件,提高日志处理效率和可靠性,为后续的故障排查、性能优化和安全审计等工作奠定基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值