You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何覆盖系统日志/var/log/secure的logrotate配置?请验证方法合理性

调整/var/log/secure日志的logrotate保留周期方案验证与优化

你的操作逻辑是完全正确的,不会出现问题:

  • 从原/etc/logrotate.d/rsyslog配置中移除/var/log/secure,避免同一日志被多个配置文件重复处理导致冲突
  • 单独创建/etc/logrotate.d/securelog配置文件,为该日志设置rotate 1(结合logrotate默认每周执行一次的调度,对应保留1份归档日志,满足缩短至1周的需求)

不过可以提供两种更优的实现方式,让配置更简洁易维护:

方式一:直接修改原rsyslog配置文件

无需新建额外配置文件,直接在/etc/logrotate.d/rsyslog中拆分配置,把/var/log/secure单独列出来设置专属参数:

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
    endscript
}

/var/log/secure
{
    rotate 1
    # 若要严格确保日志仅保留7天,可添加maxage参数
    # maxage 7
    missingok
    sharedscripts
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
    endscript
}

方式二:简化专属配置文件

如果坚持使用独立配置文件,可以省略与原配置重复的参数(logrotate会继承全局配置或默认参数),仅保留差异项:

/var/log/secure
{
    rotate 1
    # 严格控制保留天数的话加上这行
    # maxage 7
    sharedscripts
    postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
    endscript
}

注:missingok属于logrotate常用默认参数,若全局配置已开启可不用重复写;但如果要确保该参数生效,也可以保留。

另外补充一个细节:rotate 1是指定保留1份归档日志,结合每周轮转的默认调度,实际会保留当前正在写入的日志+1份上周的归档。如果需要严格只保留最近7天内的日志,建议添加maxage 7参数,这样不管轮转次数,超过7天的归档文件都会被自动删除,更贴合“保留1周”的需求。

内容的提问来源于stack exchange,提问作者Rob Wilkinson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:30:54