Linux下如何拆分大的日志文件?

系统 Linux
没设置好日志大小最大值,导致日志文件过大,普通编辑器根本没法打开或者特别卡,怎么办?拆分呗。

前言

没设置好日志大小最大值,导致日志文件过大,普通编辑器根本没法打开或者特别卡,怎么办?拆分呗。

[[279636]]

如何拆分

split命令上场。

按照行数拆分

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

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

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

能不能好好命名一下呢?

规范命名

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

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

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

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

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

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

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

  1. $ split --numeric-suffixes=4 test.txt -a 4 -l 2 
  2. test.txt  x0004  x0005 

按照大小拆分

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

  1. $ split -b 10 test.txt 

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

  1. $ split -b 10k test.txt 

分割成指定数量文件

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

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

其他方法

当然了,打的日志文件可以不用那种创建临时文件打开的方式(如vim打开一个文件会创建一个临时文件),而可以使用类似more,tail等命令查看部分内容。

 

责任编辑:赵宁宁 来源: 编程珠玑
相关推荐

2011-08-10 10:12:35

2019-02-28 09:13:21

Linux用法交互模式

2011-09-09 18:16:18

WindowsLinux

2020-03-24 08:00:00

Linux日志文件

2020-09-18 06:53:22

Linux日志文件

2009-03-10 19:19:16

Linux日志文件系统安装使用

2010-11-29 14:24:06

Linux软件管理

2022-08-11 07:07:46

系统Linux日志

2011-03-04 11:04:21

Vsftpd日志文件

2018-05-09 16:37:45

LinuxPDF文件解除密码

2021-08-30 13:08:54

Linux实时监控日志文件

2014-03-20 10:31:02

Linuxbin

2020-06-22 07:47:18

Linux系统磁盘

2010-03-09 17:57:46

2011-07-25 09:43:38

目标设备管理工具日志文件

2011-01-14 17:54:43

2021-02-03 10:43:54

Linux系统磁盘

2023-05-17 18:45:56

Linux文件

2015-08-03 15:48:22

Linux日志

2011-01-18 11:15:19

LinuxLOG
点赞
收藏

51CTO技术栈公众号