Skip to main content

在 Linux 中检查磁盘空间与使用情况

本指南介绍如何在 Linux 系统(VPS、专用服务器、云实例)上检查磁盘空间存储使用情况。磁盘满会降低性能、导致服务失败或无法登录。掌握 dfdufind 可监控分区、找出占用最多的目录和文件,避免故障。

前提条件

  • 对 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 执行 dufind

参考

  • 手册页:man dfman duman find