CentOS 上可追加和可 grep 的存档,可保存许多日志文件(logrotate 更强大)

CentOS 上可追加和可 grep 的存档,可保存许多日志文件(logrotate 更强大)

我在 CentOS 6.3 机器上有一堆应用程序,它们以这种方式生成每日日志(内容非常相似的文本文件):

/data/logs/app/my-2014-06-29.log
/data/yet_another_app/logs/catalina.20140629
/data/in_fact/there_are/around_500_such_paths/2014-06-29-1.log

我需要将这些日志保存 5 年。我目前以传统的 Unix 方式对待它们,只是将它们压缩到位(如.log.bz2),但我不满意它们仍然占用大量空间。我觉得我可以节省很多空间,但先压缩它们,然后再压缩(想想一个巨大的 .zip 可以容纳一整年的日志)。

要求:

RHEL 犹太洁食

请不要“从源代码编译”。如果它还不够成熟,无法以 .rpm 形式分发,那么它不适合我。

grep

存档应该允许递归 grep (如grep -rli):

grep_my_zip  -rli  pattern   /this/and/that/wildcards/2014-06-*

grep 时,存档不应解压缩所有内容,而应仅解压缩与通配符匹配的文件。

附加

每周我都会将文件放入相同的归档并从文件系统中删除它们:

append_and_remove   $( find /this/and/that  -name '*.log' -type f -mtime +31 )     # weekly log cleaning job

这不是每周存档,我想每周附加到一个大的年度存档中。

微软视窗访问

Archive 虽然主要在 CentOS Linux 上运行,但也应该允许在 Windows 上进行单个文件检索以用于紧急目的(因此,squashfs 风格的文件系统不是一个可行的选择)。

可选的东西(一个加号,但不是必需的)

  • 追加应该是有效的空间 - 考虑到以前的日志文件与当前的日志文件非常相似
  • 每周工作的 logrotate 集成
  • grep_my_zip 适用于 Windows
  • 存档还可以是可更新的(即可写的),而不仅仅是可追加的

最初发布对于这个可怜的弟弟

答案1

我对各种压缩机的研究表明,为了节省空间,不值得走上非传统的道路。

  • 8800M解包双周输入(5842个文件)
  • 270M 只是 bzip2 (传统 logrotate 风格 - 单独的 .log.bz2 文件)
  • 257M 焦油 bzip2
  • 400M拉链
  • 132M p7zip(兼容 Windows .7z)
  • 140M焦油xz
  • 129M 焦油lrzip

相关内容