在 Linux 中检查磁盘空间与使用情况
本指南介绍如何在 Linux 系统(VPS、专用服务器、云实例)上检查磁盘空间和存储使用情况。磁盘满会降低性能、导致服务失败或无法登录。掌握 df、du 和 find 可监控分区、找出占用最多的目录和文件,避免故障。
前提条件
- 对 Linux 服务器(Debian、Ubuntu 等)的 SSH 访问
- 管理员权限(sudo)以读取所有目录
连接服务器
ssh 用户@服务器IP地址
磁盘相关常用命令
| 命令 | 说明 | 典型用途 |
|---|---|---|
df | 显示已挂载文件系统的已用与可用空间 | 分区概览 |
du | 估算目录和文件占用空间 | 找出占用最多的目录 |
find | 按大小、名称、类型或日期查找文件 | 查找大文件或旧文件 |
使用 df 检查磁盘空间
df(disk free)可快速查看所有已挂载文件系统的磁盘空间。
语法:df [OPTION]... [FILE]...
常用选项:-h(人类可读)、-i(inode)、-t ext4、-x tmpfs、-T。
示例:
- 所有文件系统:
df -h - 指定挂载点:
df -h /mnt - inode 使用:
df -i
有用列:Filesystem、Size、Used、Avail、Use%、Mounted on。
使用 du 检查磁盘使用
du(disk usage)估算目录和文件占用的空间。
语法:du [OPTION]... [FILE]...
常用选项:-h、-s、-a、--max-depth=N、--exclude=模式。
示例:
- 目录总大小:
sudo du -sh /路径/目录 - 一级子目录:
sudo du -h --max-depth=1 /var - 按大小排序:
sudo du -h --max-depth=1 /var | sort -rh
使用 find 查找大文件
在 /var 中查找大于 50 MB 的文件:sudo find /var -type f -size +50M -exec ls -lh {} \;
全系统大于 100 MB:sudo find / -type f -size +100M 2>/dev/null
超过 30 天未修改的文件(清理用):sudo find /var/log -type f -mtime +30
命令速查
| 目的 | 命令 |
|---|---|
| 分区概览 | df -h |
| 某挂载点空间 | df -h /mnt |
| inode 使用 | df -i |
| 目录大小 | sudo du -sh /路径 |
| 子目录按大小排序 | sudo du -h --max-depth=1 /var | sort -rh |
| 大于 50 MB 的文件 | sudo find /var -type f -size +50M -exec ls -lh {} \; |
故障排除
- 分区满:用
du找出占用最多的目录;清理日志(journalctl --vacuum-time=7d)、包缓存(apt clean)、/tmp。 - “No space left on device”但仍有空间:检查 inode —
df -i;若 IUse% 为 100%,需删除或移走文件以释放 inode。 - 权限不足:对系统目录使用
sudo执行du和find。
参考
- 手册页:
man df、man du、man find