Ubuntu 服务器磁盘空间不足,会影响网站上传、数据库写入、日志记录和服务启动。很多看似程序异常的问题,实际原因可能只是磁盘被日志、缓存或备份文件占满。本篇教程介绍如何查看磁盘使用情况、定位大文件目录,并安全清理日志、缓存和旧备份。
一、磁盘空间不足会影响哪些服务
Ubuntu 服务器磁盘满了,不只是不能上传文件这么简单。它可能导致数据库写入失败、日志无法记录、网站缓存异常、证书更新失败,甚至让部分服务无法启动。
很多网站故障看起来像程序问题,实际是磁盘空间不足。比如后台无法保存设置、上传图片失败、数据库报错、计划任务执行异常,都可能和磁盘有关。
因此,排查服务器异常时,磁盘空间是必须检查的一项。
二、先查看分区使用情况
查看磁盘分区:
df -h
这个命令能看到各分区总容量、已用容量、可用容量和挂载点。
重点关注使用率接近 100% 的分区,尤其是 /、/var、/home、网站目录所在分区和数据库目录所在分区。
有些服务器总磁盘还很多,但根分区已经满了。服务是否异常,取决于相关目录所在分区是否还有空间。
比如日志通常在 /var/log,网站文件可能在 /www 或 /var/www,数据库目录可能在 /var/lib 下,具体以实际环境为准。
三、定位占用空间大的目录
查看某个目录大小:
du -sh /var/log
du -sh /home
du -sh /var/www
查看当前目录下一级目录占用:
du -h --max-depth=1
如果没有明确方向,可以从 /var、网站目录、备份目录开始查。
常见大文件来源包括:
- Web 访问日志;
- 错误日志;
- 数据库备份;
- 网站压缩包;
- 上传文件;
- 缓存目录;
- 临时文件;
- Docker 镜像和容器数据。
如果服务器上运行了面板、容器或备份程序,也要检查它们的默认备份路径。
四、清理 APT 缓存和无用包
Ubuntu 使用 APT 安装软件后,可能会留下缓存。可以根据实际情况清理:
sudo apt clean
sudo apt autoremove
apt clean 用于清理下载缓存,apt autoremove 用于删除不再需要的依赖包。
五、处理日志文件要谨慎
日志文件过大很常见,但不要直接乱删。先确认日志是否还在被服务写入。
可以查看日志目录:
du -sh /var/log
ls -lh /var/log
如果某个日志特别大,先判断它属于哪个服务。对于仍在运行的服务,直接删除日志文件可能不会立刻释放空间,因为进程仍然占用文件句柄。
更稳妥的方式是使用日志轮转机制,或者在确认服务影响后进行截断处理。生产环境操作前应先备份关键日志。
六、清理备份文件要先确认可恢复
备份文件占用空间很常见,尤其是网站自动备份、数据库备份、整站压缩包。清理前要先确认:
- 最近一次可用备份在哪里;
- 是否已经同步到其他位置;
- 是否需要保留多个版本;
- 删除后是否还能恢复业务。
不要为了释放空间,把唯一可用备份删掉。磁盘清理的目标是删除无用文件,不是牺牲恢复能力。
七、清理后要做验证
清理完成后再次执行:
df -h
确认空间是否释放。然后检查相关服务是否正常,例如网站访问、数据库连接、日志写入、上传功能等。
如果磁盘很快再次变满,说明问题没有根治。需要继续查是日志增长太快、备份策略不合理,还是某个程序持续生成大文件。
FAQ
Q1:Ubuntu 磁盘满了可以直接重启吗?
A:重启可能暂时缓解某些占用,但不能解决根本问题。应先定位哪个目录或文件占用空间。
Q2:apt clean 会删除已安装的软件吗?
A:不会。它主要清理下载缓存,不会卸载已经安装的软件。
Q3:日志文件太大能不能直接删?
A:不建议直接删。应先确认日志归属和服务状态,必要时使用更安全的清理方式。

