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

Log rotation生成文件超出rotate设定,如何限制pcsd日志数量至5?

问题描述

现有/etc/logrotate.d/pcsd配置如下:

#cat /etc/logrotate.d/pcsd  
/var/log/pcsd/*.log {  
    rotate 5  
    weekly  
    missingok  
    notifempty  
    compress  
    delaycompress  
    copytruncate  
    create 0600 root root  
}  

按配置应最多保留5个pcsd.log相关备份文件,但实际生成了大量备份(超过100个),部分文件列表如下:

-rw-------.  1 root root 230M Apr  9 00:01 pcsd.log-20230409-2023040900.backup  
-rw-------.  1 root root  15M Apr 16 00:01 pcsd.log-20230409.gz-2023041600.backup  
-rw-------.  1 root root  16M Apr 16 00:01 pcsd.log-20230416.gz  
-rw-------.  1 root root 247M Apr 16 00:01 pcsd.log-20230416-2023041600.backup  
-rw-------.  1 root root  17M Apr 23 00:01 pcsd.log-20230423.gz  
-rw-------.  1 root root  16M Apr 23 00:01 pcsd.log-20230416.gz-2023042300.backup  
-rw-------.  1 root root 254M Apr 23 00:01 pcsd.log-20230423-2023042300.backup  
-rw-------.  1 root root  17M Apr 30 00:01 pcsd.log-20230423.gz-2023043000.backup  
-rw-------.  1 root root  17M Apr 30 00:01 pcsd.log-20230430.gz  
-rw-------.  1 root root 252M Apr 30 00:01 pcsd.log-20230430-2023043000.backup  
-rw-------.  1 root root  17M May  7 00:01 pcsd.log-20230430.gz-2023050700.backup  
-rw-------.  1 root root  17M May  7 00:01 pcsd.log-20230507.gz  
-rw-------.  1 root root 252M May  7 00:01 pcsd.log-20230507-2023050700.backup  
-rw-------.  1 root root  17M May 14 00:01 pcsd.log-20230507.gz-2023051400.backup  
-rw-------.  1 root root 251M May 14 00:01 pcsd.log-20230514-2023051400.backup  
-rw-------.  1 root root 251M May 14 00:01 pcsd.log-20230514  

/etc/logrotate.conf全局配置如下,且dateext已生效:

weekly
rotate 4
create
dateext
include /etc/logrotate.d

请问如何将pcsd日志文件的最大保留数量限制为5?


解决方案

1. 排查重复备份原因

从文件列表看,存在两类额外的.backup文件,这大概率是pcsd自身的日志备份机制与logrotate冲突导致的。先检查pcsd配置(如/etc/sysconfig/pcsd或pcsd服务配置文件),若存在自带的日志轮转/备份选项,直接关闭该功能,避免重复生成备份。

2. 调整logrotate配置

修改/etc/logrotate.d/pcsd,添加日期格式定义和保留时长限制,确保只保留5份每周备份:

/var/log/pcsd/*.log {  
    rotate 5  
    weekly  
    missingok  
    notifempty  
    compress  
    delaycompress  
    copytruncate  
    create 0600 root root  
    dateext          # 明确启用日期后缀(继承全局配置,显式声明更清晰)
    dateformat -%Y%m%d  # 指定归档文件的日期格式,避免命名混乱
    maxage 35        # 删除超过35天的文件(5周×7天=35天,对应5份每周备份)
}  

3. 清理现有多余文件

手动删除已存在的超期备份文件:

cd /var/log/pcsd
# 删除超过35天的.backup文件
find . -name "*.backup" -mtime +35 -delete
# 删除超过35天的压缩归档文件
find . -name "*.log-*.gz" -mtime +35 -delete

4. 验证配置正确性

执行测试命令检查logrotate配置是否正常:

logrotate -v /etc/logrotate.d/pcsd

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:27:41