Linux磁盘清理技巧与实用方法
时间:2026-03-26 18:56:47 492浏览 收藏
当Linux系统提示磁盘空间已满,不仅会导致程序崩溃、日志写入失败,甚至可能引发整个服务中断——本文针对Ubuntu 24.04环境下的Dell PowerEdge R750服务器,提供一套从诊断到清理的完整实战方案:先用df和du精准定位空间与inode瓶颈,再通过journalctl、apt clean、tmp清理、lsof排查及Docker prune等高效手段,系统性释放被日志、缓存、临时文件、僵尸句柄和容器残留长期霸占的宝贵空间,助您快速恢复系统稳定性与运行效率。

如果您的LINUX系统提示磁盘空间已满,可能导致程序无法运行、日志无法写入甚至系统崩溃。为避免数据丢失或服务中断,需要立即定位并清理占用大量空间的文件和缓存。
本文运行环境:Dell PowerEdge R750,Ubuntu 24.04
一、检查磁盘使用情况
在执行清理操作前,必须先确认磁盘空间的实际使用状态,以确定哪个分区或目录占用了过多空间。这有助于后续精准清理。
1、执行以下命令查看所有挂载分区的磁盘使用率:
df -h
2、观察输出结果中“Use%”列,重点关注使用率超过90%的分区,例如根分区“/”或“/home”。
3、若怀疑是inode耗尽导致空间不足,可运行:
df -i
检查各分区的inode使用率,确保没有达到100%。
二、定位大文件与高占用目录
通过分析各级目录的大小,可以快速找到占用空间最多的文件夹,从而决定是否需要清理或迁移数据。
1、查看根目录下各子目录的磁盘占用情况:
du -sh /*
2、针对占用较高的目录(如/var、/home)进行深入排查,例如:
du -sh /var/*
3、使用find命令查找大于500MB的单个文件:
find / -type f -size +500M 2>/dev/null
该命令会列出所有符合条件的大文件,便于您手动处理。
三、清理系统日志文件
日志文件是磁盘空间被迅速耗尽的常见原因,尤其是系统日志和应用日志长期未轮转时,可能增长至数GB。
1、对于使用systemd的系统,限制journal日志总大小:
sudo journalctl --vacuum-size=200M
2、清空特定日志文件内容而不删除文件本身(适用于正在被写入的日志):
sudo truncate -s 0 /var/log/syslog
3、删除旧的日志归档文件:
sudo find /var/log -name "*.log.*" -type f -delete
四、清除软件包缓存
包管理器在安装软件后会保留下载的安装包缓存,这些文件通常位于缓存目录中,长时间积累会占用大量空间。
1、如果是Debian/Ubuntu系统,请运行:
sudo apt-get clean && sudo apt-get autoremove
2、如果是RHEL/CentOS/Fedora系统,请运行:
sudo dnf clean all && sudo dnf autoremove
或旧版本系统使用:
sudo yum clean all && sudo package-cleanup --oldkernels --count=1
五、删除临时文件
系统和用户产生的临时文件通常存储在/tmp和/var/tmp中,重启后一般不会影响系统运行,可安全清理。
1、清空/tmp目录下的所有文件:
sudo rm -rf /tmp/*
2、同时清理/var/tmp中的持久化临时文件:
sudo rm -rf /var/tmp/*
六、清理已删除但未释放的文件句柄
某些进程可能仍在使用已被删除的文件,导致磁盘空间未被释放。这种情况下,即使文件不可见,空间仍被占用。
1、查找被删除但仍被进程占用的大文件:
lsof | grep deleted
2、记下相关进程的PID,并根据情况决定处理方式:
若可重启服务,则重启对应服务;
若需立即释放空间且不影响业务,可终止该进程:
kill -9 PID
将“PID”替换为实际的进程号。
七、清理Docker残留资源
如果系统上运行了Docker,未使用的镜像、容器、卷和网络会累积占用大量磁盘空间,建议定期清理。
1、清理所有未使用的Docker资源(包括镜像、容器、卷、网络):
docker system prune -a --volumes
2、仅清理停止的容器和未使用的网络:
docker container prune && docker network prune
以上就是《Linux磁盘清理技巧与实用方法》的详细内容,更多关于清理的资料请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
208 收藏
-
379 收藏
-
464 收藏
-
125 收藏
-
141 收藏
-
500 收藏
-
100 收藏
-
459 收藏
-
338 收藏
-
395 收藏
-
105 收藏
-
165 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习