据国内IDC联盟2024年统计,37%的企业级服务器非计划停机由磁盘空间耗尽引发,这类故障不仅会导致业务中断,还可能造成数据丢失。服务器磁盘清理需遵循标准化流程,兼顾安全与效率。
当磁盘使用率超过阈值(通常为系统盘85%、数据盘90%),系统会拒绝写入新文件,例如数据库无法存储事务日志、Web服务器无法生成访问日志,直接影响在线服务的正常运行。
虚拟内存交换空间(swap)依赖磁盘空间,磁盘耗尽时系统会触发内存交换过载,导致进程阻塞、系统响应变慢,甚至触发内核panic。
清理操作前需完成三类验证,避免误操作引发风险:
执行df -h查看各挂载点的使用率,确认异常高使用率的分区;执行du -sh / --exclude=/proc --exclude=/sys(排除虚拟文件系统避免干扰)定位大目录,分析文件类型与来源。
对近7天的系统日志、业务交易文件、核心配置文件执行本地快照或异地存储备份,可通过shell脚本自动完成,例如tar -czf /backup/log_$(date +%Y%m%d).tar.gz /var/log/。
执行lsof | grep deleted查看是否有被进程占用的已删除文件,这类文件仍占用磁盘空间,需终止对应进程或通过日志管理器清理。
系统日志是磁盘空间占用的常见来源,直接删除日志文件会导致文件描述符泄漏,需用官方工具清理。例如清理systemd日志: ``` journalctl --vacuum-time=7d ``` 该命令会保留最近7天的日志,自动清理更早的内容;对于rsyslog日志,可修改/etc/rsyslog.conf中的日志轮转规则,配置保留周期为30天。

/tmp、/var/tmp目录存储临时文件,无业务关联的临时文件可定期清理,执行: ``` find /tmp -type f -mtime +7 -delete ``` 该命令会删除修改时间超过7天的普通文件,排除目录与特殊文件。
包管理工具的缓存会占用大量空间,例如CentOS的yum缓存、Debian/Ubuntu的apt缓存: ``` CentOS系统 yum clean all Debian/Ubuntu系统 apt clean ``` 建议每周执行1次缓存清理,避免冗余包堆积。
定位大小超过100M的非关键文件,执行:
```
find / -type f -size +100M -exec ls -lh {} \;
```
确认文件无用后再删除,例如过期的备份文件、测试数据,删除前可通过sha256sum 文件名记录哈希值,便于后续验证。
清理操作需在业务低峰期执行,例如凌晨2-6点,避免影响在线交易、用户访问等核心业务。
禁止删除/proc、/sys等虚拟文件系统的文件,禁止删除/etc、/bin、/sbin等系统关键目录的文件;清理前需确认文件所属业务与用途,避免误删配置文件或业务数据。
清理完成后执行df -h确认目标分区使用率降至80%以下,执行du -sh /path/to/key/dir确认关键目录大小无异常,同时检查在线服务是否正常运行。
某电商平台订单服务器(CentOS 7)磁盘使用率达92%,经检查/var/log/httpd目录日志占比55%,/tmp临时文件占比28%,yum缓存占比7%。执行以下操作:
最终磁盘使用率降至71%,订单服务未出现中断,后续配置日志轮转规则,保留30天日志,避免空间再次耗尽。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图