温馨提示×

centos cleanup怎样清理日志

小樊
45
2026-09-03 01:03:22
栏目: 智能运维

在 CentOS 中清理日志(log)通常有多种方式,取决于你是手动清理使用系统工具,还是配置自动清理。下面按常见场景说明。


一、手动清理日志(最简单)

1. 清理 /var/log 下的日志

# 查看日志占用
du -sh /var/log/*

# 清空某个日志文件(不删除文件本身)
> /var/log/messages
> /var/log/secure
> /var/log/maillog

⚠️ 不建议直接 rm 日志文件,可能导致正在写入的进程出错。


2. 删除旧日志(已轮转的)

# 删除 *.log-2023* 等旧文件
rm -f /var/log/*.log-*
rm -f /var/log/messages-*

二、使用 logrotate(推荐)

CentOS 默认使用 logrotate 管理日志。

查看 logrotate 状态

logrotate -d /etc/logrotate.conf

手动执行一次

logrotate -f /etc/logrotate.conf

常见配置位置

/etc/logrotate.conf
/etc/logrotate.d/

示例(/etc/logrotate.d/nginx):

/var/log/nginx/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 0640 nginx nginx
}

三、使用 systemd 日志清理(journalctl)

CentOS 7+ 使用 systemd-journald

查看日志占用

journalctl --disk-usage

清理旧日志

# 保留最近 7 天
journalctl --vacuum-time=7d

# 限制最大 500MB
journalctl --vacuum-size=500M

永久限制 journal 大小

编辑:

/etc/systemd/journald.conf
SystemMaxUse=500M
MaxRetentionSec=7day

然后:

systemctl restart systemd-journald

四、清理 yum / dnf 缓存(非日志但常一起做)

yum clean all
# 或
dnf clean all

五、自动化清理建议(生产环境)

  • ✅ 使用 logrotate
  • ✅ 限制 journalctl 大小
  • ❌ 不建议写 rm -rf /var/log/* 的定时任务

如果你告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 具体想清理哪种日志(系统 / 应用 / Docker / Nginx 等)

我可以给你更精确的清理命令或配置

0