logrotate - 压缩文件修改了 x 天数

发布于 2024-10-08 05:46:08 字数 50 浏览 3 评论 0原文

有没有办法让 logrotate 只压缩 X 天前修改的文件(例如 mtime +2)

Is there a way to get logrotate to only compress files modified X number of days ago (e.g. mtime +2)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苦妄 2024-10-15 05:46:08

一种选择是使用 logrotate 旋转到不同的扩展名,然后使用 logrotate 旋转为压缩文件:

/var/log/raw.log {
  daily
  nocompress
  extension .old
  }

/var/log/*.old {
  daily
  compress
  delaycompress
  rotate 10
  }

这个 Rube Goldberg 装置将导致以下结果:

raw.log
raw.log.old
raw.log.old.1
raw.log.old.2.gz
raw.log.old.3.gz

因此,您有两天的未压缩日志存档。

One option could be to use logrotate to rotate to a different extension, then use logrotate to rotate into compressed files:

/var/log/raw.log {
  daily
  nocompress
  extension .old
  }

/var/log/*.old {
  daily
  compress
  delaycompress
  rotate 10
  }

This Rube Goldberg contraption will result in the following:

raw.log
raw.log.old
raw.log.old.1
raw.log.old.2.gz
raw.log.old.3.gz

Thus you have two archived days of logs which are uncompressed.

执笔绘流年 2024-10-15 05:46:08

那么你可以使用delaycompress再等待一个周期。基本上,如果您每天轮换,那么它会保留昨天的日志未压缩。

除此之外,您可以尝试不使用 logrotate 来压缩文件并编写一个 bash 脚本每天运行一次并压缩所有早于特定日期的文件。

这是我个人喜欢的 bash 教程: http://www.linuxconfig.org/Bash_scripting_Tutorial

Well you can use delaycompress to wait one more cycle. Basically if you rotate daily then it will keep yesterdays logs uncompressed.

Besides that you could try not using logrotate to compress the files and write a bash script to run like once a day and compress all files older than a certain date.

Here is a tutorial to bash that I personally like: http://www.linuxconfig.org/Bash_scripting_Tutorial

羅雙樹 2024-10-15 05:46:08

你能做类似下面的事情吗?

/var/log/access.log {
    daily
    nocompress
}

/var/log/access.7.log {
     daily
     compress
}

我认为这会给你类似的东西

access.log
access.1.log
access.2.log
access.3.log    
access.4.log
access.5.log
access.6.log
access.7.log.gz
access.8.log.gz
access.log

Could you do something like the following?

/var/log/access.log {
    daily
    nocompress
}

/var/log/access.7.log {
     daily
     compress
}

I think that will give you something like

access.log
access.1.log
access.2.log
access.3.log    
access.4.log
access.5.log
access.6.log
access.7.log.gz
access.8.log.gz
access.log
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文