我该如何修复"/etc/cron.daily/logrotate:gzip:stdin:文件大小在压缩时发生了变化"?

Kiu*_*uki 19 email logrotate

在最后几天,我从cron的logrotate任务获得每日邮件:

/etc/cron.daily/logrotate:

gzip:stdin:压缩时文件大小发生了变化

我该如何解决?

谢谢Gian Marco.

lam*_*nux 23

是一篇法语博客文章,提供了一个解决方案.

在英语中,您可以阅读此错误报告.

总结一下:

  1. 首先,您必须--verbose在脚本中添加该选项,/etc/cron.daily/logrotate以便在下次运行时获取更多信息,以确定导致问题的旋转日志.

    #!/bin/sh
    
    test -x /usr/sbin/logrotate || exit 0
    /usr/sbin/logrotate --verbose /etc/logrotate.conf`
    
    Run Code Online (Sandbox Code Playgroud)
  2. 接下来,您必须delaycompress在logrotate配置中添加选项.

  • @LanceHolland您可以使用以下命令再次运行它:/ usr/sbin/logrotate /etc/logrotate.conf但是,根据您的logrotate设置(频率,minsize等),条件可能不足以导致gzip问题.我认为最好添加详细信息然后让它按照每日计划运行. (2认同)

Zty*_*tyx 5

upstart当它注意到文件被删除时,将关闭(并重新打开)其日志文件。但是,如果您查看gzip 的作用,您会发现它直到写入输出文件之后才会删除该文件。这意味着总是存在一种竞争条件,即正在写入的日志行可能会丢失gzipping

您可以使用 禁用警告gzip --quiet,但实际上这并不能掩盖您可能仍然会丢失日志行的事实。

这意味着这delaycompress不是对此的通用修复。这是针对特定问题的特定修复。

真正的解决方案可能是结合delaycompress并能够向进程发送信号。它将使竞争条件在实践中消失(除非你每秒旋转多次:))。