温馨提示×

linux日志磁盘满怎处理

小樊
75
2026-10-05 10:00:10
栏目: 智能运维

在 Linux 服务器上,日志导致磁盘空间占满是非常常见的问题。可以按下面步骤快速处理和长期优化。


一、快速确认磁盘情况

df -h

看哪个分区(通常是 / 或 /var)使用率 100%。

查看目录占用:

du -sh /* 2>/dev/null
du -sh /var/* 2>/dev/null

定位大日志文件:

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

二、紧急释放空间(不重启服务)

1. 清空大日志文件(推荐)

不要直接 rm,可能导致服务仍占用空间。

# 例如
> /var/log/messages
> /var/log/syslog

或:

truncate -s 0 /var/log/xxx.log

2. 删除旧的日志归档

rm -f /var/log/*.gz
rm -f /var/log/*-2023*

3. 清理 journal 日志(systemd)

journalctl --disk-usage
journalctl --vacuum-size=100M

三、处理被删除但仍占空间的文件

lsof | grep deleted

如果看到大文件:

  • 重启对应服务
  • 或 echo > /proc/PID/fd/X

四、防止再次发生(重要)

1. 配置 logrotate

编辑或新建:

/etc/logrotate.d/your_app

示例:

/var/log/app/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}

测试:

logrotate -d /etc/logrotate.conf

2. 限制 journal 日志大小

vim /etc/systemd/journald.conf
SystemMaxUse=200M

重启:

systemctl restart systemd-journald

3. 应用层日志控制

  • 调整日志级别(ERROR / WARN)
  • 避免打印 debug 到文件
  • 使用异步日志

五、常见坑

  • rm 后 df 不变 → 文件被进程占用
  • Docker 日志满 → 配置 log-opt max-size
  • /tmp 满 → 清理或单独挂载

如果你能贴出:

  • df -h
  • du -sh /var/log
  • 系统版本(CentOS / Ubuntu)

我可以帮你给出针对性的清理方案。

0 踩