Linux下 分割日志大文件

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

  

使用例子:

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

再比如:

先生成100kb大小的文件

[[email protected] 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的小文件:

[[email protected] split]# split -b 10k date.file

生成的效果如下

[[email protected] split]# ls
date.file  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj

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

[[email protected] split]# split -b 10k date.file -d -a 3 split_file
[[email protected] split]# ls
date.file  split_file000  split_file001  split_file002  split_file003
split_file004  split_file005  split_file006  split_file007  split_file008  
split_file009
时间: 2024-12-28 11:36:54

Linux下 分割日志大文件的相关文章

Linux下分割与合并文件的方法

Linux下分割与合并文件的方法 切割合并文件在linux下用split和cat就可以完成.下面举些实例进行说明.1.文件切割文件切割模式分为两种: 文本文件 二进制模式. 1.1文本模式文本模式只适用于文本文件,用这种模式切割后的每个文件都是可读的.文本模式又分为两种:     按最大文件大小切割:     按文本行数切割. 1.1.1最大文件大小切割 split -C 5k duanxin split 将文本文件duanxin按每块最大5k的大小进行切割,不打碎行.输出文件名类似splita

Linux下分割、合并文件——dd和cat

功能说明:读取,转换并输出数据. 语 法:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>][–help][–version] 补充说明:dd可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或

linux下分割catalina.out文件,按天生成文件

1.下载工具cronolog压缩包(http://download.csdn.net/detail/sunling_sz/8144469) 2.将文件拖放到服务器,任何目录都可以. 3.进入到cronolog的安装目录 # cd cronolog-1.6.2 4.运行安装 # ./configure # make # make install 5.查看cronolog安装后所在目录(验证安装是否成功) # which cronolog 一般情况下显示为:/usr/local/sbin/crono

解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

本文摘自:(http://blog.csdn.net/stevencn76/article/details/6246162) 分类: Java技术专区2011-03-13 12:25 5017人阅读 评论(1) 收藏 举报 tomcatlinux工具任务web 由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已经其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开,而且同时tomcat依旧在不断的向文

Linux下重要日志文件及查看方式

1.Linux下重要日志文件介绍 /var/log/boot.log 该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示: 图1 /var/log/boot.log示意 /var/log/cron 该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户.登录时间和PID,以及派生出的进程的动作.CMD的一个动作是cron派生出一个调度进程的常见情况.REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性

linux下分割合并文件命令

分割与合并文件操作. 分割与合并文件 有时候大文件分割后更方便传输.以一张图片为例:分割:默认分割 12345678910111213 [[email protected] shell]$ ls -lh总用量 1.5M-rwxrwxrwx 1 jimo jimo 1.5M 9月 17 20:31 1.png[[email protected] shell]$ split 1.png [[email protected] shell]$ ls -lh总用量 2.9M-rwxrwxrwx 1 jim

Linux下查看日志的命令

最近线上的事故有点多,加上公司的监控系统实在是不好用,所以为了抓更多的信息,需要去线上服务器看实时日志.作为一个萌新,居然傻傻的直接用vim打开了jetty的日志文件,近乎10个G的日志文件被vim读入内存,导致服务器的内存被撑爆,系统自动开始kill进程,最后把jetty进程kill掉了,导致了线上故障. 所以有了这篇文章,主要介绍在Linux环境下,可以用来查看日志文件并且不会占用很大内存的一些命令. Introduction 一般来说在Linux下查看文件内容的命令有以下几种: vim.v

在linux/unix中查找大文件

在linux/unix中查找大文件,如查找大于100M文件的位置路径,查找等于10M文件的位置路径等等,下面就介绍几个实现快速查找的命令: 1. 查找指定目录下所有大于100M的文件,命令为 find path -type f -size +100M  (path 为自己指定的目录,如当前目录./): 2. 查找指定目录下等于10M的文件,命令为 find path -type f -size 10M (path 为自己指定的目录,如当前目录./): 3. 查找指定目录下小于1M的文件,命令为

Linux下apache日志分析与状态查看方法

假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http://www.a.cn/common/index.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)” 问题1:在apachelog中找出访问次数最多的10个IP.awk '{print $1}