如何解决Linux服务器上的磁盘空间不足问题

来源:站长站作者:会飞的猪头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何解决Linux服务器上的磁盘空间不足问题》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何解决Linux服务器上的磁盘空间不足问题》有用,将其分享出去将是对创作者最好的鼓励。

Linux服务器磁盘空间不足是运维场景中非常常见的问题,当磁盘使用率达到阈值时,会引发程序写入失败、服务崩溃等一系列故障,需要快速定位原因并完成清理。

如何解决Linux服务器上的磁盘空间不足问题

第一步:确认磁盘整体使用情况

首先需要通过df命令查看所有挂载点的磁盘使用情况,快速定位哪个分区空间不足。常用参数-h可以以人类可读的格式展示容量大小。

# 查看所有挂载点的磁盘使用情况
df -h
# 输出示例
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        50G   48G  2.0G  96% /
# tmpfs           7.8G     0  7.8G   0% /dev/shm
# /dev/sdb1       200G   50G  150G  25% /data

从输出结果可以看到根分区/的使用率已经达到96%,需要优先处理这个分区的问题。

第二步:定位占用空间大的目录和文件

确认分区后,需要使用du命令逐层排查该分区下占用空间较大的目录,找到具体的冗余文件。常用参数-sh可以查看目录总大小,--max-depth可以限制排查深度。

# 查看根目录下一级目录的大小,按从大到小排序
du -sh /* 2>/dev/null | sort -rh
# 输出示例
# 30G	/var
# 10G	/home
# 5G	/usr
# 2G	/opt

从结果可以看到/var目录占用了30G空间,继续向下排查/var下的子目录:

# 查看/var目录下一级子目录的大小
du -sh /var/* 2>/dev/null | sort -rh
# 输出示例
# 25G	/var/log
# 3G	/var/lib
# 2G	/var/cache

可以看到/var/log目录占用了25G空间,是主要的问题来源。

第三步:针对性清理冗余内容

清理过期日志文件

日志文件是磁盘空间占用的常见原因,尤其是没有配置日志轮转的服务,日志会持续累积。可以先查看大日志文件:

# 查找/var/log目录下大于1G的文件
find /var/log -type f -size +1G 2>/dev/null

对于确认无用的历史日志,可以直接删除,正在写入的日志不要直接删除,而是清空内容:

# 清空正在写入的nginx访问日志,而不是直接删除
echo "" > /var/log/nginx/access.log
# 删除30天前的所有.log结尾的日志文件
find /var/log -name "*.log" -type f -mtime +30 -delete

清理系统缓存和无用安装包

如果是基于Debian或Ubuntu的系统,可以清理apt缓存:

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

如果是基于CentOS或RHEL的系统,可以清理yum缓存:

# 清理yum缓存
yum clean all
# 删除不再需要的依赖包
yum autoremove -y

查找并删除大文件

如果日志清理后空间仍然不足,可以查找整个分区下的大文件:

# 查找根分区下大于5G的文件
find / -type f -size +5G 2>/dev/null

确认文件无用后再删除,比如旧的备份文件、临时下载的安装包等。

第四步:验证清理效果

清理完成后,再次使用df -h命令查看磁盘使用情况,确认空间已经释放:

df -h
# 输出示例
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        50G   20G  30G   40% /

如果清理后空间没有明显变化,可能是有进程仍然占用已删除的文件,可以通过lsof命令查找这类进程,重启对应进程即可释放空间:

# 查找占用已删除文件的进程
lsof | grep deleted
# 重启对应进程,比如重启nginx
systemctl restart nginx

长期预防建议

为了避免磁盘空间不足问题反复出现,可以做好以下配置:

  • 为常用服务配置日志轮转,比如使用logrotate工具定期切割、压缩、删除旧日志
  • 设置磁盘使用率监控告警,当使用率超过80%时及时通知运维人员
  • 定期清理临时目录/tmp下的过期文件,避免临时文件累积
  • 重要数据尽量存储到单独的数据盘,不要和系统盘放在同一个分区

Linux磁盘空间不足df命令du命令日志清理修改时间:2026-07-23 23:51:34

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