上一篇 下一篇 分享链接 返回 返回顶部

服务器磁盘突然满了的真实排查过程:日志与备份文件把空间占光了

发布人:tianfen 发布时间:2026-06-24 12:29 阅读量:1670

今天处理网站的时候,遇到一个比较典型的服务器问题:磁盘空间突然满了。

这个问题一开始并不明显,因为网站前台还能打开,服务器也能正常登录,并不像服务器宕机那样直接打不开。但后台操作明显开始异常,比如上传图片失败、保存文章变慢、部分页面加载时偶尔卡住。

刚开始我以为是网站程序问题,后来一步一步排查,才发现真正原因是服务器磁盘空间被日志和备份文件占满了。

一、问题出现时的表现

这次问题的表现主要有几个:

网站首页还能打开,但速度比平时慢了一点。

后台上传图片失败,有时候提示上传错误。

文章保存时间变长,偶尔保存失败。

网站没有明显的 502 或 500 报错。

SSH 可以正常登录服务器。

这种情况很容易误判。

因为网站不是完全打不开,所以很多人第一反应会去查程序、权限、插件、PHP配置,但实际上,这次问题的根源不在程序,而在服务器磁盘空间。

二、第一步:先确认服务器负载

登录服务器后,我先看了一下整体负载。

top

CPU占用并不高,内存也没有明显爆满。

这说明服务器并不是因为CPU或内存压力导致卡顿。

然后我又看了一下运行时间和负载情况。

uptime

负载也在正常范围内。

这一步排除了一个方向:不是CPU和内存导致的问题。

三、第二步:检查磁盘空间

因为后台上传和保存都涉及文件写入,所以我开始检查磁盘空间。

df -h

结果一看就很明显:

根目录使用率已经接近100%。

这说明服务器几乎没有剩余可写空间了。

磁盘满了以后,网站会出现很多奇怪问题:

上传文件失败。

缓存无法生成。

日志无法继续写入。

数据库临时文件无法创建。

后台保存数据异常。

所以网站表面上看是“上传失败”,实际是服务器已经没有空间继续写入文件。

四、第三步:查看哪个目录占用最大

知道磁盘满了以后,不能直接乱删文件。

我先查看根目录下各个目录的占用情况:

du -sh /* 2>/dev/null

结果发现 /www 目录占用最大。

继续往下查:

du -sh /www/* 2>/dev/null

发现占用空间比较大的主要是两个地方:

一个是网站日志目录。

另一个是备份目录。

这两个目录平时很容易被忽略,但时间一长就会堆出很多文件。

五、第四步:检查网站日志目录

我继续查看网站日志文件大小。

du -sh /www/wwwlogs/* 2>/dev/null

发现有几个日志文件非常大。

其中访问日志占用最多。

这种情况很常见,网站只要有人访问,日志就会持续写入。如果没有设置自动切割和定期清理,日志文件会越来越大。

尤其是访问量稍微多一点的网站,日志文件增长速度会比想象中快很多。

日志不是不能保留,但不能无限保留。

如果长期不管,它就会慢慢把磁盘空间吃完。

六、第五步:检查备份文件

除了日志,我又检查了备份目录。

du -sh /www/backup/* 2>/dev/null

这里也发现了不少旧备份包。

有些是数据库备份,有些是网站文件备份,还有一些是之前迁移网站时留下的压缩包。

备份本身是必要的,但问题在于:

每天都备份,却没有删除旧备份。

备份包越积越多,最后就把磁盘占满了。

很多站长都会犯这个问题:只设置了自动备份,没有设置自动清理。

七、问题真正原因

排查到这里,问题就比较清楚了。

这次服务器磁盘满了,主要原因是:

网站访问日志长期没有清理。

自动备份文件一直保留。

历史压缩包没有及时删除。

磁盘空间被逐渐占满。

最终导致网站后台上传和保存失败。

所以这不是网站程序突然坏了,而是服务器可用空间不足,导致程序无法继续写入文件。

八、临时处理方法

为了先恢复网站,我先清理了一部分确认无用的文件。

1. 清理旧日志压缩包

rm -f /www/wwwlogs/*.gz

2. 清空特别大的日志文件

对于确认不需要继续保留内容的日志,可以直接清空。

echo "" > /www/wwwlogs/网站日志文件.log

这样不会删除日志文件本身,只是清空内容,服务一般不会因为日志文件被删除而异常。

3. 删除过期备份

进入备份目录,先确认文件日期,再删除很久之前的备份。

ls -lh /www/backup/

确认不需要后再删除。

rm -f /www/backup/旧备份文件名

这里一定不要盲目删除最近的备份。

4. 清理临时目录

rm -rf /tmp/*

临时目录也可能积累不少文件,但清理前最好确认没有特殊程序正在使用。

九、清理后的效果

清理完成后,再次查看磁盘空间。

df -h

磁盘使用率明显下降。

然后重新测试网站后台:

图片上传恢复正常。

文章保存恢复正常。

后台打开速度恢复。

网站前台访问也比之前稳定。

这说明这次问题确实是磁盘空间不足导致的。

十、后续优化措施

这次问题处理完以后,我做了几个调整。

第一,定期检查磁盘空间。

不能等到磁盘100%才处理,平时看到使用率超过80%就应该注意了。

第二,设置日志切割。

网站日志可以保留,但要按天或按大小切割,避免单个日志文件无限变大。

第三,控制备份数量。

备份保留最近几份即可,不建议把所有历史备份一直放在服务器系统盘里。

第四,重要备份单独保存。

重要的网站文件和数据库备份,可以下载到本地,或者放到独立备份空间,不要全部堆在服务器上。

第五,定期清理临时文件和历史压缩包。

尤其是网站迁移、程序更新、打包下载后留下的压缩包,很多时候用完就忘了删。

十一、这次排查的经验

服务器磁盘满了,不一定会第一时间让网站打不开。

它可能先表现为:

后台上传失败。

文章保存失败。

网站缓存异常。

数据库写入异常。

日志无法写入。

所以遇到网站后台异常时,不要只盯着程序代码。

先看服务器资源,尤其是磁盘空间,往往能更快找到问题。

写在最后

这次服务器磁盘突然满了,最终原因是日志和备份文件长期堆积,占满了磁盘空间。

网站故障不一定都是程序问题,很多时候是服务器长期维护不到位导致的。

以后遇到网站上传失败、后台保存失败、数据库写入异常这类问题,可以先检查:

df -h

再继续查日志目录、备份目录和临时文件。

服务器运维最重要的不是只会重启,而是知道问题可能藏在哪一层。

目录结构
全文