在服务器运维过程中,磁盘空间不足是常见问题,尤其是在仍在使用CentOS 6这类较老系统的环境中,CentOS 6的生命周期虽已结束,但部分业务系统仍依赖其运行,因此及时处理空间不足问题至关重要,本文将从原因分析、排查方法、清理策略及预防措施等方面展开说明,帮助管理员高效解决此类问题。

空间不足的常见原因
磁盘空间不足通常由多种因素导致,日志文件无限制增长是主因之一,尤其是系统日志(如/var/log目录下的文件)和应用日志(如Apache、Nginx的访问日志),临时文件堆积,如/tmp目录下的缓存或用户上传文件,也可能占用大量空间,软件包管理器yum的缓存文件(存放在/var/cache/yum)若未定期清理,也会逐渐膨胀,用户数据或数据库文件(如MySQL的ibdata1)持续增长,若未设置合理的存储策略,同样会引发空间告警。
快速排查空间占用情况
当系统提示空间不足时,首先需定位具体占用位置,使用df -h命令可查看各分区的使用率,重点关注根目录()和/var等分区,若发现某分区接近100%,需进一步使用du -sh *命令逐级排查目录大小,进入/var目录后执行du -sh * | sort -rh | head -10,可快速占用空间最大的前10个子目录,对于日志文件,可使用ls -lh /var/log查看具体文件大小,或通过find /var/log -type f -size +100M定位超过100MB的大文件。
清理系统及日志文件
针对日志文件,可采取两种清理方式:一是使用logrotate工具,CentOS 6默认已安装该服务,需检查/etc/logrotate.conf及/etc/logrotate.d/下的配置文件,确保日志轮转策略生效(如设置每月轮转、保留3份旧日志),二是手动清理,例如执行> /var/log/messages清空文件(注意保留文件本身),或使用rm -f删除过期的日志备份文件。

对于yum缓存,执行yum clean all即可清理所有已下载的软件包缓存,释放/var/cache/yum目录的空间,临时文件方面,可定期清理/tmp目录(需谨慎,避免误删用户临时文件),或使用tmpwatch工具自动清理超过指定时间的文件(如tmpwatch -24h /tmp清理24小时内未访问的文件)。
处理用户数据及特殊文件
若空间不足由用户数据或数据库文件导致,需结合业务场景处理,对于MySQL数据文件,可检查/var/lib/mysql目录大小,通过优化表(OPTIMIZE TABLE)或归档历史数据减少占用,对于网站上传文件,可迁移至独立存储或清理无用文件,需注意检查是否有被遗忘的大文件,如使用find / -type f -size +1G查找大于1GB的文件,并根据需求决定是否删除或迁移。
预防空间不足的长期策略
为避免空间不足反复出现,需建立长效机制,配置logrotate确保日志定期轮转,并在/etc/cron.daily/中添加清理脚本,自动执行yum clean和临时文件清理,监控磁盘使用率,通过df命令结合cron任务,设置每日检查并告警(如使用mail命令发送告警邮件),合理规划分区,例如将/var、/home等目录单独分区,避免根目录被占满导致系统崩溃。

FAQs
Q1: 清理日志文件后,系统服务是否会受影响?
A1: 不会,清空日志文件(如> /var/log/messages)仅删除文件内容,不删除文件本身,系统服务仍可正常写入,但建议确保logrotate配置正确,避免手动清理后日志继续无限增长。
Q2: 如何避免误删重要文件?
A2: 清理前务必先备份关键数据,例如使用tar命令打包重要目录(tar -czf backup.tar.gz /var/log),并通过ls -lh确认文件大小和修改时间,避免删除正在使用的活跃文件,对于不确定的文件,可先移动至/tmp目录观察,确认无用后再彻底删除。