使用 logrotate 每小时轮换文件? [关闭]
Posted
技术标签:
【中文标题】使用 logrotate 每小时轮换文件? [关闭]【英文标题】:Hourly rotation of files using logrotate? [closed] 【发布时间】: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
但这根本不起作用?有人可以请指导我吗?
【问题讨论】:
blog.sleeplessbeastie.eu/2018/07/11/… 【参考方案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.hourly
和 cron.daily
计划中运行也没有问题在同一时刻。以上是关于使用 logrotate 每小时轮换文件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Logrotate实现Catalina.out日志每俩小时切割
我一直在尝试使用 logrotate 实用程序并将压缩日志移动到 s3,但是,它仅在强制完成时才会旋转