码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下 分割日志大文件

时间:2017-09-21 09:42:56      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:日志   切分   分割   

Linux下分割日志有两种常用命令 

  1. dd

  2. split(推荐使用


1.dd:

作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

参数注释:

if=filename:输入的文件名

of=finename:输出的文件名

bs=bytes:一次读写的字节数,默认是512bytes

skip=blocks:拷贝前,跳过的输入文件的前blocks块,块的大小有bs决定

count=blocks:只拷贝输入文件的前blocks块

比如


现在有一个文件file,大小为116616字节:

[root]# du -b file  
116616  file

将其分割为两文件file1和file2,那我们就设置每块为1024字节,将file的前60块放入file1,余下的放入file2:

[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会自动在前置文件名后再加上编号。

  

使用例子:

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

再比如:

先生成100kb大小的文件

[root@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的小文件:

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

生成的效果如下

[root@localhost split]# ls
date.file  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj

文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度。同时还可以为分割后的文件指定文件名的前缀:

[root@localhost split]# split -b 10k date.file -d -a 3 split_file
[root@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





本文出自 “玥舞神” 博客,请务必保留此出处http://hui1943.blog.51cto.com/4195144/1967221

Linux下 分割日志大文件

标签:日志   切分   分割   

原文地址:http://hui1943.blog.51cto.com/4195144/1967221

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!