如何清理Linux服务器上的磁盘空间?
Linux服务器磁盘空间清理终极指南:8个高效解决方案
当您的Linux服务器频繁发出"磁盘空间不足"警告时,系统性能将急剧下降。本文揭示8个专业运维人员常用的磁盘清理技巧,帮您快速释放宝贵空间。
一、快速定位磁盘空间占用源
使用ncdu
工具(比df更直观):
sudo apt install ncdu # Debian/Ubuntu sudo yum install ncdu # CentOS/RHEL ncdu /
这个交互式工具会按目录大小排序显示,用方向键导航,Enter键深入,d键删除。
二、清理APT/YUM/DNF缓存(针对包管理系统)
Ubuntu/Debian:
sudo apt clean # 清理所有已下载的.deb包 sudo apt autoremove # 删除不再需要的依赖
CentOS/RHEL:
sudo yum clean all # 清理YUM缓存 sudo dnf clean all # 新版Fedora/CentOS
三、处理日志文件(最容易忽视的空间杀手)
使用journalctl
管理systemd日志:
sudo journalctl --vacuum-size=200M # 限制日志总大小为200MB sudo rm /var/log/*.gz # 删除已压缩的旧日志
配置logrotate
自动轮转日志:编辑/etc/logrotate.conf
四、查找并删除大文件(3种专业方法)
方法1:快速查找大于100MB的文件
find / -type f -size +100M -exec ls -lh {} \;
方法2:查找最近7天修改过的大文件
find / -type f -size +50M -mtime -7
五、容器和镜像清理(Docker用户必看)
docker system prune -a # 清理所有未使用的对象 docker volume prune # 清理未使用的卷
警告:此操作会删除所有停止的容器和未被使用的镜像!
六、处理/tmp目录(常被遗忘的临时文件)
安全清理方法:
sudo find /tmp -type f -atime +10 -delete
建议配置tmpreaper
自动清理:
sudo apt install tmpreaper sudo dpkg-reconfigure tmpreaper
七、内核旧版本清理(Ubuntu特别需要)
查看已安装内核:
dpkg --list | grep linux-image
删除旧内核(保留最近2-3个):
sudo apt purge linux-image-X.X.X-XX-generic
八、高级技巧:使用BTRFS/ZFS压缩(长效解决方案)
如果使用BTRFS文件系统:
sudo btrfs filesystem defrag -r -v -czstd /
ZFS用户可使用:
zfs set compression=lz4 pool/dataset
最佳实践建议
- 建立定期清理计划(cronjob)
- 重要数据删除前先备份
- 考虑使用监控工具如Prometheus预警
通过这8个方法组合使用,通常可立即释放30%以上的磁盘空间。对于生产环境,建议在非高峰期执行清理操作。