专栏首页编程珠玑Linux下如何拆分大的日志文件?

Linux下如何拆分大的日志文件?

前言

没设置好日志大小最大值,导致日志文件过大,普通编辑器根本没法打开或者特别卡,怎么办?拆分呗。

如何拆分

split命令上场。

按照行数拆分

假设文件test.txt有n多行,每2行拆分为一个文件,使用-l参数即可:

$ split -l 2 test.txt 
$ ls -al
-rw-r--r-- 1 root root 32 Aug 31 16:55 test.txt
-rw-r--r-- 1 root root 20 Aug 31 16:55 xaa
-rw-r--r-- 1 root root 12 Aug 31 16:55 xab

仔细一看,拆分后的文件名难以描述啊。

能不能好好命名一下呢?

规范命名

使用-d参数可以用数字作为新的文件后缀:

$ split -l 2 test.txt -d
$ ls
test.txt  x00  x01  x02

还可以用-a指定后缀数字的长度(默认是2):

$ split -l 2 test.txt -d -a 4
$ ls
test.txt  x0000  x0001  x0002

不过开头的x实在看不顺序,我们还可以指定前缀,比如指定前缀为test:

$ split -l 2 test.txt -d -a 4 test
$ ls
test0000  test0001  test0002  test.txt

而且你还可以从指定数字下标开始,使用--numeric-suffixes,例如从0004开始:

$ split --numeric-suffixes=4 test.txt -a 4 -l 2
test.txt  x0004  x0005

按照大小拆分

使用-b参数来按照大小来拆分,单位为字节:

$ split -b 10 test.txt

当然还可以使用k(千字节),m(兆)。即:

$ split -b 10k test.txt

分割成指定数量文件

使用-n参数即可,比如无论大小,行数,拆分为3个文件:

$ split -n 4 test.txt
$ test.txt  xaa  xab  xac  xad

其他方法

当然了,打的日志文件可以不用那种创建临时文件打开的方式(如vim打开一个文件会创建一个临时文件),而可以使用类似more,tail等命令查看部分内容。更多查看方式可以参考《Linux常用命令-文本查看篇》。

本文分享自微信公众号 - 编程珠玑(shouwangxiansheng),作者:守望先生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • root用户也没法用rm随意删除文件?

    在你的印象中,是不是root用户就可以为所欲为呢?随便一个rm -rf *,一波骚操作走人?可能没那么容易。

    编程珠玑
  • watch的使用场景

    是不是经常会遇到需要观察某个内容,为了持续观察而反复执行某个命令?也许你可以写一个简单的脚本帮你反复执行,但是有更简单方便的方法为什么不用呢?今天要介绍的便是w...

    编程珠玑
  • 图解:基于二叉堆的堆排序是如何实现的?

    我们在介绍《什么是优先队列》的时候就注意到,如果每次都删除堆顶元素,那么将会得到一个有序的数据。因此,我们可以利用二叉堆来对数据进行排序。

    编程珠玑
  • 一定要知道的,那些Linux基本操作命令(一)

    王豆豆
  • Linux命令复习和练习_02

    tar是Unix/Linux中最常用的备份工具,该命令可以把一系列文档归档到一个大文件中,也可以把档案文件解开以恢复数据。

    黑泽君
  • Shell-3-文件之名

    1.生成任意大小的文件 [root@localhost tmp]# dd if=/dev/zero of=junk.data bs=1M count=1 记录了...

    用户1173509
  • Linux基础知识之文件隐藏属性

    这几天温习下 Linux 基础知识,基础里面较为薄弱的知识点我会在这里记录一下,以便回头查看 ---- Linux 下的文件除了权限属性,还有一些隐藏属性,必须...

    张戈
  • rsync同步时,删除目标目录比源目录多余文件的方法(--delete)

    在日常运维工作中,我们经常用到rsync这个同步神器。有时在同步两个目录时,会要求删除目标目录中比源目录多出的文件,这种情况下,就可用到rsync的--dele...

    洗尽了浮华
  • chattr 命令,超越权限任性修改

    chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功...

    胡齐
  • python 如何引用上级目录的模块

    一番搜索以后,发现原理就是,通过os.path.append("路径")的方式,将python的环境变量切换到上一级,就可以直接引用t1模块了

    py3study

扫码关注云+社区

领取腾讯云代金券