Linux磁盘空间清理技巧:服务器释放存储空间的完整优化指南
2026-07-25 24 0
在维护Linux服务器的过程中,磁盘空间不足是非常常见的问题。尤其是运行网站、数据库、Docker服务或长期运行的应用服务器,随着时间推移,日志文件、软件缓存、临时文件以及历史数据都会不断累积,最终导致磁盘占用率过高。
当服务器磁盘空间接近满载时,不仅会影响应用程序运行,还可能导致数据库无法写入、网站访问异常,甚至系统服务无法正常启动。因此,定期检查和清理Linux磁盘空间,是服务器运维中非常重要的一项工作。
本文介绍一些常用的Linux磁盘空间清理技巧,帮助你快速定位占用空间较大的文件,并安全释放服务器存储空间。
查看Linux磁盘使用情况
在开始清理之前,首先需要了解当前磁盘的使用情况。
可以使用以下命令查看磁盘空间:
df -h
该命令可以显示每个磁盘分区的容量、已使用空间以及剩余空间。
例如:
Filesystem Size Used Avail Use%
/dev/sda1 80G 72G 8G 90%
如果根目录 / 使用率超过80%,建议开始检查占用空间较大的目录。
查看当前目录大小:
du -sh *
也可以查看根目录下哪些文件夹占用空间最多:
du -sh /* 2>/dev/null | sort -rh | head -20
通过这种方式,可以快速找到 /var、/home、/opt 等目录中的大文件。du 配合排序是Linux服务器排查磁盘问题时非常常用的方法。
如果希望使用可视化方式查看磁盘占用,可以安装 ncdu:
sudo apt install ncdu
然后运行:
sudo ncdu /
通过交互界面可以更加直观地发现占用空间较大的文件。
清理Linux系统缓存
Linux的软件包管理器通常会保存下载缓存,长期运行的服务器可能积累大量无用安装包。
Ubuntu/Debian系统
清理APT缓存:
sudo apt clean
删除无用的软件包:
sudo apt autoremove
清理旧版本软件缓存:
sudo apt autoclean
CentOS/RHEL系统
可以使用:
sudo yum clean all
或者:
sudo dnf clean all
这些缓存文件通常不会影响系统运行,适当清理可以释放部分磁盘空间。
清理Linux日志文件
日志文件是服务器磁盘增长的重要来源之一。
常见日志目录:/var/log。查看日志目录大小:
du -sh /var/log/*
如果服务器运行时间较长,日志可能占用几个GB甚至更多空间。
对于使用systemd的Linux系统,可以通过 journalctl 管理系统日志。
查看日志占用:
journalctl --disk-usage
清理指定时间以前的日志:
sudo journalctl --vacuum-time=7d
或者限制日志大小:
sudo journalctl --vacuum-size=500M
journalctl 提供了查看和清理systemd日志的方法,可以避免系统日志长期无限增长。
为了避免以后日志再次占满磁盘,可以修改:/etc/systemd/journald.conf,设置 SystemMaxUse=500M,然后重启日志服务:
sudo systemctl restart systemd-journald
清理Docker占用的磁盘空间
很多Web服务器会使用Docker部署应用,而Docker镜像、容器日志以及缓存非常容易占满磁盘。
查看Docker占用:
docker system df
清理无用资源:
docker system prune
如果希望删除更多无用镜像、停止的容器和缓存:
docker system prune -a
注意执行前需要确认,因为该操作可能删除未使用的镜像。
Docker官方也提供了 docker system prune 等命令,用于清理未使用的镜像、容器、网络和缓存资源。
如果Docker日志过大,可以查看:
du -sh /var/lib/docker/containers/*
清理单个容器日志:
truncate -s 0 文件路径
建议同时配置Docker日志轮转,避免日志文件无限增长。
删除临时文件
Linux临时目录通常存放短期文件 /tmp,查看:
du -sh /tmp
删除超过一定时间的临时文件:
sudo find /tmp -type f -mtime +7 -delete
也可以清理 /var/tmp,不过删除前建议确认没有应用正在使用这些文件。
查找超大文件并删除
服务器中可能存在一些异常的大文件,例如:
- 错误日志
- 数据库备份
- 上传文件
- 历史压缩包
- 临时生成文件
查找超过1GB的文件:
sudo find / -type f -size +1G
查找超过500MB的文件:
sudo find / -type f -size +500M
确认无用后,可以删除:
rm -rf 文件路径
删除前一定要确认文件用途,避免误删系统文件。
清理旧内核文件
Ubuntu等Linux系统升级内核后,旧版本内核可能会保留,占用额外空间。
查看已安装内核:
dpkg --list | grep linux-image
删除旧版本:
sudo apt autoremove
一般保留当前正在使用的内核以及一个备用版本即可。
释放已经删除但仍占用空间的文件
有时候使用 rm 删除大文件后,磁盘空间并没有立即释放。原因可能是某些程序仍然占用该文件。
lsof | grep deleted
如果发现相关进程,需要重启对应服务:
systemctl restart 服务名称
例如:
systemctl restart nginx
建立Linux磁盘自动清理机制
手动清理只能解决临时问题,更好的方式是建立自动维护机制。
可以定期执行:
- 日志轮转
- 清理软件缓存
- 删除旧备份
- 限制Docker日志大小
- 监控磁盘使用率
例如设置磁盘告警,当磁盘超过90%时发送通知,可以提前处理问题。
总结
Linux服务器磁盘空间不足,大多数情况下并不是磁盘容量太小,而是长期积累的日志、缓存、Docker数据和临时文件没有及时清理。
日常维护时,可以按照以下顺序排查:首先使用 df -h 查看磁盘状态,然后通过 du 或 ncdu 查找大目录,接着清理系统缓存、日志文件、Docker资源以及无用备份。
对于长期运行的网站服务器,建议定期进行磁盘巡检,并设置日志大小限制和空间告警机制。这样可以避免因为磁盘满导致网站停止访问或服务异常,让Linux服务器保持稳定运行。