Linux系统磁盘空间占用过高怎么排查和解决

来源:站长联盟作者:新加坡程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《Linux系统磁盘空间占用过高怎么排查和解决》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Linux系统磁盘空间占用过高怎么排查和解决》有用,将其分享出去将是对创作者最好的鼓励。

Linux系统磁盘空间占用过高是运维过程中非常常见的问题,轻则导致应用写入失败,重则引发系统服务异常中断,需要及时排查处理。常见的诱因包括日志文件无限制增长、临时文件未清理、大文件残留、软件包缓存堆积等,不同诱因对应的处理方式存在差异。

Linux系统磁盘空间占用过高怎么排查和解决

常用排查命令介绍

df命令查看磁盘整体使用情况

df命令可以查看系统中所有挂载点的磁盘使用情况,常用参数-h可以以人类可读的格式展示容量单位,方便快速判断哪个分区空间不足。

# 查看所有挂载点的磁盘使用情况
df -h
# 输出示例
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        50G   45G  2.5G  95% /
# tmpfs           7.8G     0  7.8G   0% /dev/shm

du命令定位大文件和大目录

当确定某个分区空间不足后,可以使用du命令逐层排查占用空间较大的文件或目录,常用参数-h展示可读单位,-d指定排查深度,-s统计总大小。

# 查看根目录下一级目录的占用大小,按从大到小排序
du -h -d 1 / 2>/dev/null | sort -hr
# 查看指定目录下大于100M的文件
find /var -type f -size +100M 2>/dev/null

常见场景及解决方案

日志文件堆积

Linux系统中/var/log目录存放各类服务日志,如果服务日志没有配置滚动策略,很容易出现单个日志文件体积过大或者日志目录整体占用过高的情况。

如果是临时清理,可以直接删除过期的日志文件,但是需要注意不要删除正在写入的日志,避免服务异常。如果是长期解决,需要配置日志滚动规则,以rsyslog服务为例,修改/etc/logrotate.d/syslog配置文件:

# 编辑rsyslog日志滚动配置
vim /etc/logrotate.d/syslog
# 配置内容示例
/var/log/messages {
    daily          # 每天滚动一次
    rotate 7       # 保留7份历史日志
    compress       # 压缩历史日志
    missingok      # 日志不存在时不报错
    notifempty     # 日志为空时不滚动
    create 0644 root root  # 新建日志文件的权限和属主
}

软件包缓存过多

使用yum或者apt包管理器安装软件时,会默认缓存下载的安装包,长期不清理会占用大量磁盘空间。

如果是CentOS/RHEL系统,使用yum清理缓存:

# 清理所有yum缓存
yum clean all
# 只清理过期的缓存
yum clean expire-cache

如果是Ubuntu/Debian系统,使用apt清理缓存:

# 清理已下载的安装包缓存
apt clean
# 清理不再需要的依赖包
apt autoremove

已删除文件仍占用空间

有时候使用rm命令删除了大文件,但是磁盘空间没有释放,这是因为文件还在被进程占用,文件描述符没有关闭。可以通过lsof命令找到这类文件:

# 查找被删除但仍被进程占用的文件
lsof | grep deleted
# 输出示例
# nginx     1234  root  10w      REG                8,1  1073741824   123456 /var/log/nginx/access.log (deleted)

找到对应的进程ID后,可以通过重启进程或者向进程发送信号的方式释放空间,比如重启nginx服务:

systemctl restart nginx

临时文件残留

/tmp目录下的临时文件如果没有被程序自动清理,也会占用磁盘空间,可以定期清理超过指定时间的临时文件:

# 删除/tmp目录下7天前创建的文件
find /tmp -type f -mtime +7 -delete

日常预防建议

为了避免磁盘空间频繁出现过高的问题,可以做好以下几点预防措施:

  • 为重要服务配置日志滚动策略,避免日志无限制增长
  • 定期清理软件包缓存和临时文件,可以配置定时任务自动执行
  • 监控磁盘使用率,当使用率超过80%时及时告警处理
  • 部署应用时合理规划分区,避免单个分区空间分配不足

Linux磁盘空间df命令du命令清理日志修改时间:2026-07-05 10:45:23

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。