在 CentOS 中清理日志(log)通常有多种方式,取决于你是手动清理、使用系统工具,还是配置自动清理。下面按常见场景说明。
/var/log 下的日志# 查看日志占用
du -sh /var/log/*
# 清空某个日志文件(不删除文件本身)
> /var/log/messages
> /var/log/secure
> /var/log/maillog
⚠️ 不建议直接 rm 日志文件,可能导致正在写入的进程出错。
# 删除 *.log-2023* 等旧文件
rm -f /var/log/*.log-*
rm -f /var/log/messages-*
CentOS 默认使用 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
}
CentOS 7+ 使用 systemd-journald
journalctl --disk-usage
# 保留最近 7 天
journalctl --vacuum-time=7d
# 限制最大 500MB
journalctl --vacuum-size=500M
编辑:
/etc/systemd/journald.conf
SystemMaxUse=500M
MaxRetentionSec=7day
然后:
systemctl restart systemd-journald
yum clean all
# 或
dnf clean all
logrotatejournalctl 大小rm -rf /var/log/* 的定时任务如果你告诉我:
我可以给你更精确的清理命令或配置。