前言
没设置好日志大小最大值,导致日志文件过大,普通编辑器根本没法打开或者特别卡,怎么办?拆分呗。
如何拆分
split命令上场。
按照行数拆分
假设文件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
其他方法
当然了,打的日志文件可以不用那种创建临时文件打开的方式(如vim打开一个文件会创建一个临时文件),而可以使用类似more,tail等命令查看部分内容。