在 Linux 系统管理中,存储空间的管理是一项基础且关键的任务。系统存储空间不足可能导致应用程序崩溃、服务中断甚至数据丢失。因此,及时了解并处理存储满的问题至关重要。本文将系统地介绍如何检查 Linux 系统的存储使用情况,并提供结构化的数据和分析方法。

首先,我们需要明确检查的对象。Linux 系统中的存储通常指磁盘空间,主要涉及以下几个方面:文件系统使用率、inode 使用情况、以及特定目录或挂载点的空间占用。我们将使用一系列命令行工具来获取这些信息。
最常用也是最基础的工具是 df 命令。它用于报告文件系统的磁盘空间使用情况。
使用 df -h 命令,可以以人类可读的格式(如 GB、MB)显示所有挂载文件系统的信息。
| 文件系统 | 容量 | 已用 | 可用 | 已用% | 挂载点 |
|---|---|---|---|---|---|
| /dev/sda1 | 50G | 45G | 2.1G | 96% | / |
| /dev/sda2 | 100G | 20G | 75G | 21% | /home |
| tmpfs | 3.9G | 0 | 3.9G | 0% | /dev/shm |
从上表可以看出,根目录 / 的使用率已经达到 96%,可用空间仅剩 2.1G,这通常意味着存储即将耗尽,需要立即处理。而 /home 分区则相对宽松。
另一个关键指标是 inode 的使用情况。Inode 存储着文件的元信息。如果磁盘空间充足但 inode 耗尽,系统同样无法创建新文件。使用 df -i 命令可以查看 inode 的使用情况。
| 文件系统 | Inodes | 已用 | 可用 | 已用% | 挂载点 |
|---|---|---|---|---|---|
| /dev/sda1 | 3.2M | 1.1M | 2.1M | 35% | / |
| /dev/sda2 | 6.5M | 200K | 6.3M | 4% | /home |
在这个例子中,根分区的 inode 使用率仅为 35%,不存在瓶颈。
当发现某个分区(如根分区 /)空间不足时,下一步是定位占用空间最大的目录。这时需要使用 du 命令。一个高效的用法是:du -h --max-depth=1 / | sort -hr。这条命令会显示根目录下所有一级子目录的大小,并按从大到小排序,便于快速找到“罪魁祸首”。
| 目录大小 | 目录路径 |
|---|---|
| 25G | /var |
| 10G | /usr |
| 5G | /home |
| 2G | /opt |
假设我们发现 /var 目录占用了 25G 空间,可以继续深入该目录进行调查:du -h --max-depth=1 /var | sort -hr,从而进一步定位到是日志文件、缓存还是其他数据占用了大量空间。
除了这些基本工具,还有一些更高级或专门化的方法可以辅助诊断。
1. ncdu 工具:这是一个基于文本的磁盘使用情况分析器,比反复使用 du 命令更加交互式和直观。它可以让你在目录树中导航,轻松查看哪些文件夹占用了最多空间。
2. 使用 lsof 命令:有时,已删除的文件如果仍被某个进程占用,其占用的空间并不会立即释放。使用 lsof | grep deleted 可以列出所有已被删除但仍然被进程打开的文件。重启相关进程可以释放这些空间。
3. 监控日志文件:应用程序日志(如位于 /var/log)如果没有适当的日志轮转策略,可能会快速增长并占满磁盘。使用 logrotate 服务可以有效管理日志文件的大小和生命周期。
4. 检查系统和应用程序缓存:目录如 /var/cache 可能缓存了大量数据。在确定不影响业务的前提下,可以定期清理这些缓存。
为了系统地管理存储,建议建立定期检查机制。下表总结了一个简单的存储健康检查清单:
| 检查项 | 检查命令 | 告警阈值建议 | 后续行动 |
|---|---|---|---|
| 磁盘空间使用率 | df -h | > 85% | 使用 du 定位大目录并清理 |
| Inode 使用率 | df -i | > 85% | 查找并删除大量小文件 |
| 特定目录增长 | du -sh /path/to/dir | 环比快速增长 | 分析增长原因,设置监控 |
| 被删除未释放的文件 | lsof | grep deleted | 存在大量此类文件 | 重启持有这些文件句柄的进程 |
总结来说,判断 Linux 存储满了吗 是一个系统性的过程。首先通过 df 命令宏观了解各文件系统的使用率和 inode 情况,识别出问题分区。然后利用 du 或 ncdu 命令深入问题分区,定位占用空间最大的目录或文件。最后,结合对应用程序和系统行为的理解(如日志、缓存、僵尸文件),采取针对性的清理或管理措施。养成定期检查的习惯,并设置合理的监控告警,是避免存储问题影响系统稳定性的最佳实践。