上一篇
服务器清除磁盘空间
- 行业动态
- 2025-04-10
- 7
服务器清理磁盘空间需定位并删除冗余文件,如临时文件、日志及过期备份,建议定期归档旧数据至外部存储,配置自动清理任务释放空间,使用分析工具识别大文件,谨慎操作避免误删系统文件,确保服务稳定性。
服务器磁盘空间不足?5个步骤彻底清理并优化存储
磁盘空间不足可能导致服务器性能下降、应用崩溃甚至服务中断,以下是一套经过验证的清理方法,结合系统级操作与预防策略,帮助您高效解决问题。
第一步:精准定位空间占用源
全局扫描
执行命令df -h
查看各分区使用率,锁定需清理的目标分区。
使用du -sh /* | sort -rh | head -n 10
快速识别占用最大的顶级目录。深度分析文件类型
- 日志文件:检查
/var/log/
下的Nginx、Apache、应用日志 - 临时文件:清理
/tmp/
和用户目录的.cache
文件夹 - 冗余安装包:删除
/var/cache/apt/archives/
(Debian/Ubuntu)或/var/cache/yum/
(CentOS/RHEL)
工具推荐:安装ncdu
生成可视化目录树(命令:ncdu /
)。
- 日志文件:检查
第二步:安全删除无效文件
日志清理
- 使用
logrotate
自动压缩和轮转日志 - 手动清理:
find /var/log -name "*.log" -mtime +30 -exec rm -f {} \;
(删除30天前的日志)
- 使用
清除陈旧数据
- 删除未使用的Docker镜像:
docker system prune -a --volumes
- 清理Kubernetes节点缓存:
kubeadm reset
或手动删除/var/lib/kubelet/
- 清除残留的软件包:
apt autoremove
或yum autoremove
- 删除未使用的Docker镜像:
第三步:数据库优化(以MySQL为例)
收缩事务日志
- 执行
PURGE BINARY LOGS BEFORE '2024-01-01';
清理早期二进制日志 - 配置
expire_logs_days
参数自动过期日志
- 执行
优化表空间
运行OPTIMIZE TABLE table_name;
释放未使用的存储(需确认业务低峰期操作)
第四步:容器与虚拟化环境清理
停止僵尸容器
docker ps -aq --no-trunc | xargs docker rm -fv
podman system prune --all
清理虚拟机快照
VMware:通过vmkfstools -d
删除过期快照
KVM:使用virsh snapshot-delete
移除冗余副本
第五步:建立长效预防机制
自动化监控
- 部署Prometheus + Grafana监控磁盘使用率,设置85%阈值告警
- 编写Shell脚本定时清理(示例代码):
# 每周清理7天前日志 find /app/logs/ -type f -name "*.log" -mtime +7 -delete
存储策略升级
- 将日志归档至对象存储(如AWS S3、阿里云OSS)
- 对静态资源启用CDN加速,减少本地存储压力
引用说明
本文参考Linux系统手册(man pages)、MySQL 8.0官方文档及Docker最佳实践指南,关键工具包括ncdu
(MIT协议)、logrotate
(GPLv2)及Prometheus(Apache 2.0)。