麒麟os日志持续增长需配置logrotate轮转与journald截断:一、确认logrotate安装启用;二、编辑/etc/logrotate.conf设weekly/rotate 4等;三、为nginx等服务建独立配置;四、手动触发验证;五、修改journald.conf限磁盘用量。

如果您在麒麟OS系统中发现日志文件持续增长,占用大量磁盘空间,则可能是由于系统未配置日志轮转与自动清理机制。logrotate 是麒麟OS默认集成的日志管理工具,可通过配置实现日志的定期切割、压缩与删除。以下是设置自动清理日志的具体步骤:
一、确认 logrotate 是否已安装并启用
麒麟OS通常预装 logrotate,但需验证其服务状态及基础配置是否生效。该步骤确保后续配置具备运行基础。
1、打开终端,执行命令 dpkg -l | grep logrotate,确认软件包已安装。
2、运行 systemctl list-timers | grep logrotate,检查 logrotate 定时任务是否处于激活状态。
3、若未启用,执行 sudo systemctl enable logrotate.timer 并立即启动 sudo systemctl start logrotate.timer。
二、编辑全局 logrotate 配置文件
通过修改 /etc/logrotate.conf 可统一设定所有日志的轮转策略,包括保留周期、压缩方式与触发条件。
1、使用管理员权限打开配置文件:sudo nano /etc/logrotate.conf。
2、查找或添加以下关键参数行(如不存在则手动插入):
weekly
rotate 4
compress
delaycompress
missingok
notifempty
3、保存并退出编辑器(nano 中按 Ctrl+O 回车,Ctrl+X 退出)。
三、为特定日志目录创建独立配置
对 /var/log 下的重点服务日志(如 nginx、syslog、audit)单独配置,可避免全局策略不匹配导致清理失效。
1、新建配置文件:sudo nano /etc/logrotate.d/custom-logs。
2、写入如下内容(以 /var/log/nginx/ 为例):
/var/log/nginx/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 www-data www-data
}
3、将上述结构复制粘贴后,替换路径与用户组适配目标服务(如 syslog 使用 syslog:adm)。
四、手动触发并验证 logrotate 执行效果
配置完成后需强制运行一次 logrotate,观察日志是否按预期切割、压缩与清理,防止配置错误导致策略未生效。
1、执行调试命令查看模拟行为:sudo logrotate -d /etc/logrotate.conf。
2、执行实际轮转(不压缩仅测试):sudo logrotate -f -v /etc/logrotate.conf。
3、检查 /var/log 目录下对应日志是否生成带日期后缀的归档文件(如 messages.1.gz),且原日志被清空或重置。
五、配置 systemd-journald 日志截断(适用于 journal 日志)
麒麟OS 同时使用 systemd-journald 管理二进制日志,需单独限制其磁盘用量,否则 /var/log/journal 占用将持续攀升。
1、编辑 journald 配置文件:sudo nano /etc/systemd/journald.conf。
2、取消注释并修改以下两行:
SystemMaxUse=512M
MaxRetentionSec=1month
3、重启日志服务使配置生效:sudo systemctl restart systemd-journald。










