温馨提示×

centos日志过大怎么清理

小樊
44
2026-10-26 14:51:01
栏目: 智能运维

在 CentOS 系统中,日志文件过大是常见问题,通常可以通过以下几种方式清理和管理。请根据实际情况操作,不要直接删除正在写入的日志文件(如 /var/log/messages),否则可能导致服务异常。


一、常见日志位置

  • /var/log/messages:系统常规日志
  • /var/log/secure:安全/登录日志
  • /var/log/maillog:邮件日志
  • /var/log/cron:定时任务日志
  • /var/log/httpd/、/var/log/nginx/:Web 服务日志
  • /var/log/journal/:systemd 日志

二、安全清理方法(推荐)

1️⃣ 使用 logrotate(最推荐)

CentOS 默认已安装 logrotate

查看配置:

cat /etc/logrotate.conf
ls /etc/logrotate.d/

手动执行一次:

logrotate -f /etc/logrotate.conf

✅ 可自动切割、压缩、删除旧日志


2️⃣ 清空日志文件(而不是删除)

> /var/log/messages
> /var/log/secure

或:

truncate -s 0 /var/log/messages

⚠️ 不要 rm 正在使用的日志文件


3️⃣ 清理 systemd journal 日志

查看日志占用:

journalctl --disk-usage

清理:

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

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

永久限制(编辑):

vi /etc/systemd/journald.conf
SystemMaxUse=500M

重启:

systemctl restart systemd-journald

4️⃣ 清理 yum / 临时日志

yum clean all
rm -rf /var/log/tmp/*

三、查找大日志文件

du -sh /var/log/*

或:

find /var/log -type f -size +100M

四、防止日志再次变大

  • 修改服务日志级别(如 nginx、tomcat)
  • 配置 logrotate
  • 禁用不必要服务日志
  • 定期检查 /var/log

五、示例:nginx 日志清理

> /var/log/nginx/access.log
> /var/log/nginx/error.log

并在 /etc/logrotate.d/nginx 中配置自动轮转。


如果你能告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 哪个日志特别大
  • 是否是服务器生产环境

我可以给你更精确的清理方案。

0 踩