问题
- Linux下log日志太大了,下载太慢了,即使下载下来,打开也费劲,咋办?
- 将某文件夹打包成xx.tar.gz包,但依然很大,公司无法下载这么大的压缩包,咋办?
split
以上2个问题,都可以通过Linux一个命令来帮忙 - split。
让我们先来看看split的帮助文档。
split [-b ][-C ][-][-l ][要切割的文件][输出文件名前缀][-a ]
最常用的选项:
- -b<字节>:指定按多少字节进行拆分,也可以指定 K、M、G、T 等单位。
- -<行数>或-l<行数>:指定每多少行要拆分成一个文件。
- 输出文件名前缀:设置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。
- -a<后缀长度>:默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。
分割大文件:
对于大日志文件,我们可能只需要今天的内容,今天之前的内容不需要查看,所以我们可以对日志文件进行分割,只下载我们需要的片段即可。
1.指定行数来切割
split -l 300 log.txt log.txt
通常,我们可能不知道这个文件有多少行,还可以用以下文件大小分割。
2.指定文件大小来切割
split -b 10m -d log0524.log log0524.log
很有助于问题的排查速度!
分割压缩包
例如: split -b 50K -d messages.9.gz messages.9.gz.
将messages.9.gz 分割成50K大小包,压缩包前缀是: messages.9.gz.
Linux下将分割包合并成一个包
cat messages.9.gz.00 messages.9.gz.01 messages.9.gz.02 > messages.9.gz