设为首页 收藏本站
查看: 1344|回复: 0

[经验分享] Linux下 分割日志大文件

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-9-21 09:08:38 | 显示全部楼层 |阅读模式
Linux下分割日志有两种常用命令

  • dd
  • split(推荐使用


1.dd:
作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
参数注释:
if=filename:输入的文件名
of=finename:输出的文件名
bs=bytes:一次读写的字节数,默认是512bytes
skip=blocks:拷贝前,跳过的输入文件的前blocks块,块的大小有bs决定
count=blocks:只拷贝输入文件的前blocks块
比如


现在有一个文件file,大小为116616字节:
1
2
[root]# du -b file  
116616  file



将其分割为两文件file1和file2,那我们就设置每块为1024字节,将file的前60块放入file1,余下的放入file2:
1
2
[root]# dd if=file bs=1024 count=60 skip=0  of=file1  
[root]# dd if=file bs=1024 count=60 skip=60 of=file2



这样就实现了 大文件分割



2.split
这种作为日志分割更为常用
语  法:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
参  数:
  -<行数>或-l<行数>  指定每多少行就要切成一个小文件。
  -b<字节>  指定每多少字就要切成一个小文件。支持单位:m,k
  -C<字节>  与-b参数类似,但切割时尽量维持每行的完整性。
  --help  显示帮助。
  --version  显示版本信息。
  [输出文件名]  设置切割后文件的前置文件名,split会自动在前置文件名后再加上编号。

使用例子:
1
2
[iyunv@localhost split]# split -b 100m 1111.log (//按照字节分隔,每100mb分割一个文件)   
[iyunv@localhost split]# split -l 1000000 1111.log(//按照行数分隔,每100w行做一次分割)



再比如:
先生成100kb大小的文件
1
2
3
4
[iyunv@localhost split]# dd if=/dev/zero bs=100k count=1 of=date.file
1+0 records in
1+0 records out
102400 bytes (102 kB) copied, 0.00043 seconds, 238 MB/s



使用split命令将上面创建的date.file文件分割成大小为10KB的小文件:

1
[iyunv@localhost split]# split -b 10k date.file



生成的效果如下
1
2
[iyunv@localhost split]# ls
date.file  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj



文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度。同时还可以为分割后的文件指定文件名的前缀:
1
2
3
4
5
[iyunv@localhost split]# split -b 10k date.file -d -a 3 split_file
[iyunv@localhost split]# ls
date.file  split_file000  split_file001  split_file002  split_file003
split_file004  split_file005  split_file006  split_file007  split_file008  
split_file009






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-404811-1-1.html 上篇帖子: awk '!arr[$0]++'文件处理分析 下篇帖子: 使用Cobbler批量安装操作系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表