Linux 服务器磁盘空间不足?常用排查命令与处理方法
Linux 服务器磁盘空间不足?常用排查命令与处理方法
前言
在日常 Linux 服务器运维中,磁盘空间不足是比较常见的问题。日志文件不断增长、软件包缓存、Docker 镜像等,都可能导致磁盘占用持续增加。
本文整理几个常用的 Linux 命令,介绍如何快速定位磁盘空间占用,并进行安全清理。以下命令主要适用于 Ubuntu、Debian 等 Linux 发行版。
一、查看磁盘使用情况
首先执行:
df -hT
该命令可以查看文件系统类型、总容量、已使用空间和剩余空间。
如果发现根分区 / 的使用率接近 100%,就需要进一步排查。
另外,也可以检查 inode 是否耗尽:
df -i
有时磁盘仍有剩余空间,但大量小文件耗尽了 inode,同样可能导致无法创建新文件。
二、定位占用空间较大的目录
使用以下命令查看根文件系统各目录的空间占用:
sudo du -xhd1 / 2>/dev/null | sort -h
其中:
du:统计目录占用空间。-h:以易读格式显示大小。-d1:只统计一层目录。-x:不跨越其他文件系统。sort -h:按照空间大小排序。
如果发现 /var 目录占用较大,可以继续执行:
sudo du -xhd1 /var 2>/dev/null | sort -h
通过逐层排查,可以定位占用空间最多的目录。
三、检查系统日志
Linux 的日志通常保存在 /var/log 目录下。
查看 systemd 日志占用:
journalctl --disk-usage
如果日志占用过大,可以根据实际保留需求执行:
sudo journalctl --vacuum-time=7d
该命令会清理超过指定保留时间的已归档 journal 日志,具体释放空间取决于日志文件状态。
建议先确认日志是否仍有排障价值,再进行清理。
四、清理软件包缓存
Ubuntu 和 Debian 使用 APT 管理软件包,下载的软件包可能留在本地缓存目录中。
可以执行:
sudo apt clean
该命令清理 APT 下载缓存,不会卸载已经安装的软件。
如果需要查看系统中哪些依赖包可能不再使用,可以先进行模拟:
sudo apt -s autoremove
确认列表无误后,再决定是否卸载,避免误删仍有用途的软件。
五、检查 Docker 空间占用
如果服务器部署了 Docker,还可以执行:
docker system df
该命令可以查看 Docker 镜像、容器及本地卷等资源的空间使用情况。
需要注意,清理 Docker 资源时不要直接删除不熟悉的镜像、容器或数据卷,以免影响正在运行的服务或造成数据丢失。
六、清理后重新检查
处理完成后,再次执行:
df -hT
对比清理前后的磁盘使用率,确认空间是否得到释放。
如果 df 显示的占用明显大于 du 统计结果,还需要考虑已删除但仍被进程打开的文件,以及文件系统保留空间等情况。
总结
排查 Linux 磁盘空间不足,可以按照以下顺序进行:
- 使用
df -hT查看磁盘使用率。 - 使用
du定位占用较大的目录。 - 检查系统日志和软件包缓存。
- 如果使用 Docker,检查镜像、容器和数据卷。
- 清理后再次检查,确认问题是否解决。
实际运维中,建议遵循 先定位、再确认、最后清理 的原则,不要为了释放空间而直接删除不熟悉的系统文件或业务数据。
- 点赞
- 收藏
- 关注作者
评论(0)