连续日志旋转

连续日志旋转

我已经实现了日志轮换:-

    /data/mule/logs/*.log {
    rotate 1
    size 20M
    missingok
    noolddir
    nomail
    notifempty
    create 644 root root
    compress
    }

但是如果大小超出限制,日志就不会连续轮换。它每天只轮换一次。

有人能帮我连续检查路径中的日志吗?如果超过了 20mb 的限制,就应该进行轮换。


我已将 crontab 配置为每 5 分钟运行一次。然而,我在运行它时收到以下错误:

    /etc/logrotate.d/mule: line 1: /data/mule/logs/app.zip.log: Text file busy
    /etc/logrotate.d/mule: line 2: rotate: command not found
    /etc/logrotate.d/mule: line 3: minsize: command not found
    /etc/logrotate.d/mule: line 4: missingok: command not found
    /etc/logrotate.d/mule: line 5: noolddir: command not found
    /etc/logrotate.d/mule: line 6: nomail: command not found
    /etc/logrotate.d/mule: line 7: notifempty: command not found
    /etc/logrotate.d/mule: line 8: create: command not found
    /etc/logrotate.d/mule: line 9: compress: command not found
    /etc/logrotate.d/mule: line 10: syntax error near unexpected token `}'
    /etc/logrotate.d/mule: line 10: `}'

我已在 crontab 中添加了以下内容:-

    */5 * * * * /etc/logrotate.d/mule

答案1

Logrotate 是不是在后台运行的守护进程/服务。Logrotate 通过 cron 运行(查看/etc/crontab或 中的某处/etc/cron.d/...)。

您可以调整运行频率。但是它永远不会按您的意愿运行,即真正持续检查。

您必须测试它在每天运行多次时的行为(档案名称是什么等)。由于您没有使用该dateext选项,因此您可能没有问题,它只会增加后缀(即 log.1.bz2、log.2.bz2 等)。

相关内容