服务器磁盘空间爆满怎么办?

在日常工作中,很多小伙伴都有一种感觉部署在单位Linux 服务器上的某个应用访问速度越来越慢了甚至有时候压根无法访问,其实出现这种状况有时并非是网络问题也不是服务器遭受网络攻击了,更多时候是因为磁盘空间不够导致的。出现磁盘空间不足又该如何解决问题让服务器再次快速跑起来呢?下面就让我们一起来好好探讨下这个话题。
解题思路:先定位问题(什么文件占用了空间),再安全清理(如何释放空间)。
一、 快速定位磁盘空间占用情况
1. 查看整体磁盘使用率 (df 命令)
使用 df -h 命令查看所有文件系统的磁盘空间使用情况。-h 参数表示以人类易读的格式(如G、M)显示大小。
df -h此命令您可以快速识别哪个挂载点(Mounted on)的使用率(Use%)过高:
2. 深度分析目录大小 (du 命令)
确认了目标磁盘后,使用 du 命令深入分析具体是哪个目录占用了大量空间。
# 查看根目录下所有一级目录的大小,并排序du -sh /* 2>/dev/null | sort -hr- -s:仅显示总大小,不显示子目录详情。
- -h:以易读格式显示。
- 2>/dev/null:忽略无权限访问目录的错误提示。
- sort -hr:按人类易读的数字大小进行逆序排序。
二、 精准清理:释放磁盘空间
找到占用空间大的目录后,下一步就是进行针对性清理。
1. 查找并处理大文件
使用 find 命令在全盘或特定目录下搜索大文件。
# 在根目录 / 下查找大于100MB的文件find / -type f -size +100M 2>/dev/null2. 清理日志文件
通常日志文件(/var/log/)是占用空间的罪魁祸首。
查看日志总大小:sudo du -sh /var/log/
清空特定大日志文件(如syslog):使用 truncate 命令安全清空,而非直接删除,避免影响正在写入日志的服务。
sudo truncate -s 0 /var/log/syslog清理系统日志(Journal):将日志归档清理到指定大小。sudo journalctl --vacuum-size=100M

3. 清理软件包缓存(APT)
适用于Debian/Ubuntu系统。
clean:删除所有已下载的软件包缓存。autoclean:仅删除过时的软件包缓存。
sudo apt-get cleansudo apt-get autoclean4. 清理旧内核
保留当前运行内核和最新一个备用内核即可。
查看已安装内核列表:dpkg --list | grep Linux-image
删除特定旧内核(将 x.x.x-x-generic 替换为实际版本号):sudo apt-get purge linux-image-x.x.x-x-generic
5. 清理临时文件
临时目录(/tmp 和 /var/tmp)也可安全清理。
sudo rm -rf /tmp/*sudo rm -rf /var/tmp/*
⚠️ 清理前温馨提醒
- 务必备份重要数据:在执行任何删除操作前,请确保重要数据已备份。
- 再次确认删除对象:尤其是使用 rm -rf 命令时,务必核对路径,避免误删系统文件。
- 不要盲目清空所有日志:某些应用日志可能对故障排查至关重要,建议先确认或进行归档。
通过以上步骤,您可以系统地解决Linux磁盘空间不足的问题。建议在后续工作中定期执行诊断步骤,防患于未然。
本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。



