【问题标题】:Hourly rotation of files using logrotate? [closed]使用 logrotate 每小时轮换文件? [关闭]
【发布时间】:2014-10-18 13:15:48
【问题描述】:

我尝试设置位于 /tmp/hr_logs/ 的日志文件的日志轮换。为了进行设置,我在 linux 中使用了 logrotate,并且可以使用 /etc/logrotate.conf 中的以下配置每天轮换它

  /tmp/hr_logs {
  daily
  rotate 4

使用此配置,文件将每天轮换,系统将保留 4 个附加日期的日志文件副本 [格式:-YYYYMMDD]

现在,我尝试设置一组不同的日志文件,我需要每小时轮换一次,为此,我已经在 logrotate.conf 中完成了配置:

  /tmp/last_logs {
  hourly
  rotate 4

但这根本不起作用?有人可以请指导我吗?

【问题讨论】:

标签: linux cron rhel logrotate


【解决方案1】:

logrotate.conf 的联机帮助页包含关于 hourly 选项的重要建议:

日志文件每小时轮换一次。 请注意,通常 logrotate 配置为每天由 cron 运行。您必须更改此配置并每小时运行一次 logrotate 才能真正每小时轮换一次日志。

正如yellow1pl 所指出的,解决方案是将文件/etc/cron.daily/logrotate 复制到/etc/cron.hourly/ 目录中。这至少适用于 Debian,可能还有一些 Debian 衍生产品。

【讨论】:

  • 这也适用于 CentOS
  • 复制或移动文件?另外,我不应该在 /etc/logrotate.conf 中将“每日”更改为“每小时”吗?
  • 我会进行符号链接,就好像脚本已更新一样,您将继承任何更改。此外,如果您使用 dateext 选项,您将需要重新格式化扩展名,以便您每天可以拥有多个 uniq 文件名。我使用以下。 dateext 日期格式 -%Y%m%d-%s
  • 我用于符号链接的命令:ln -s /etc/cron.daily/logrotate /etc/cron.hourly/logrotate
【解决方案2】:

每日日志轮换有/etc/cron.daily/logrotate 脚本。但是/etc/cron.hourly/ 目录中默认没有这样的脚本。复制此脚本,它应该可以正常工作。

【讨论】:

  • 按照建议,我在 /etc/cron.hourly 下复制了 logrotate 但没有运气。
  • @Kishore 您是否也使用了“每小时”选项?通过阅读操作系统上的手册页,确保您的发行版支持它,man logrotate
  • 您不想移动logrotate 而不是复制吗?否则会有logrotate同时运行两次的时候
  • 我发现在将logrotate 移动到/etc/cron.hourly 后必须重新启动crond 服务。例如。在 CentOS 7 sudo systemctl restart crond
  • @mulllhausen logrotate 默认情况下会锁定状态文件,如果已锁定则退出 - 因此即使在 cron.hourlycron.daily 计划中运行也没有问题在同一时刻。
猜你喜欢
  • 2018-10-12
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 2017-03-29
  • 2017-12-19
  • 2017-11-15
  • 2019-10-13
  • 1970-01-01
相关资源
最近更新 更多