Linux split 命令实现日志文件的拆分
目录
- 零. 背景
- 一. 使用 split 命令进行拆分
- 二. MD5校验
零. 背景
⏹之前在下面的这篇文章中介绍了如何通过csplit
命令进行日志文件的拆分
Linux csplit 命令实现日志文件的拆分
csplit -f new_log_file_prefix_ -b "%02d.log" CBC_SystemLog.2024-04-07.0.log 8650 "{9}"
😵存在的问题
- 使用csplit命令需要计算拆分的文件的数量和每个文件需要包含的行数,如果文件数量,文件行数与总行数不匹配的话,命令就会执行失败
"{9}"
中的9表示设置9个分割点,实际上切分10次,会产生11个切割文件。命令中的参数容易令人产生误会,不够直观。
一. 使用 split 命令进行拆分
-l 10000
:指定每个对原文件按照每1千行进行分割new_log_file_prefix_
:拆分完之后新文件的名称前缀--numeric-suffixes
:默认情况下拆分之后的新文件通过英文名进行顺番,通过此配置项设置为数字进行顺番--additional-suffix=.log
:设置拆分后文件的后缀
split -l 10000 CBC_SystemLog.2024-04-07.0.log new_log_file_prefix_ --numeric-suffixes --additional-suffix=.log
🧐如果日志体积很大,例如100M的文件有6000行,想要拆小的话,粗略计算10M的文件需要拆分600行即可
二. MD5校验
拆分之后的文件的总行数和原文件的总行数相同,可以保证我们的拆分的正确性,除此之外还可以通过md5
来对文件进行校验。
md5sum
命令