Linux 检查磁盘空间命令来查看系统磁盘使用情况
使用以下 Linux 命令检查磁盘空间:
- df command– 显示 Linux 文件系统上已使用和可用的磁盘空间量。
- du command– 显示指定文件和每个子目录使用的磁盘空间量。
- btrfs fi df /device/ command– 显示基于 btrfs 的挂载点/文件系统的磁盘空间使用信息。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 终端 |
类别 | 磁盘管理 |
操作系统兼容性 | Alma • Alpine • Arch • Debian • Fedora • Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu |
预计阅读时间 | 9 分钟 |
Linux 使用 df 命令检查硬盘空间
尝试以下任一命令来检查 Linux 上的硬盘空间:
- 打开终端并输入以下命令来检查磁盘空间。
- df 的基本语法是:
$ df [options] [devices]
- 接下来,Linux 使用 df 命令检查磁盘空间:
$ df
$ df -H - 方括号中的项目是可选的。您只需键入 df 命令(即不带参数)即可查看列出系统上每个设备名称的表格。
图 01:df 命令运行情况
查看有关特定文件系统的信息
您可以将设备或挂载点作为参数,然后 df 仅报告物理上驻留在该设备上的文件系统的数据。例如,以下命令仅提供分区 /dev/sda 的信息:
/dev/sda(我的第一个 SATA)检查磁盘空间使用情况,如下所示:
# Linux Check Disk Space for /dev/sda #
$ df /dev/sda
$ df -h /dev/sdc1
$ df /data/
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda 2930266584 69405248 2859579472 3% /data
您也可以在 Linux 上检查 nvme 磁盘空间使用情况。例如,尝试 /dev/nvme0n1p2 分区:
$ df -h /dev/nvme0n1p2
PCI NVME Linux 磁盘空间使用情况:
Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p2 1.5G 348M 1.1G 26% /boot
了解 df 命令输出
有效字段如下:
显示名称 | 有效字段名称(用于--output选项) | 描述 |
---|---|---|
文件系统 | 来源 | 挂载点的源,通常是 Linux 磁盘的设备。 |
1K 块 | 尺寸 | Linux 磁盘空间下的总块数。 |
用过的 | 用过的 | Linux 磁盘上已使用的块数。 |
可用的 | 可用 | Linux 磁盘上可用块的数量。 |
使用% | 百分比 | USED 除以 SIZE 的百分比。 |
安装在 | 目标 | Linux 磁盘空间的挂载点。 |
您也可以传递“有效字段名称”定义的输出格式(如下所示),以便在 Linux 下检查磁盘空间时获得详细视图。例如,尝试:
示例输出:
$ df --output=field1,field2,...
$ df --output=source,used,avail /data/
Filesystem Used Avail /dev/md0 5.4G 115G udev 0 11M tmpfs 6.2M 414M tmpfs 4.1k 1.1G tmpfs 4.1k 5.3M tmpfs 0 1.1G /dev/md2 818G 688G tmpfs 0 210M tmpfs 0 210M /dev/mapper/cryptvg-mybackup 77G 526G
在 Linux 上检查磁盘空间使用情况时显示所有字段
想要打印所有可用字段?将以下选项传递给df 命令:
$ df --o
有关我的 Linux 磁盘空间(包括Inode)的详细输出:
Filesystem Type Inodes IUsed IFree IUse% 1K-blocks Used Avail Use% File Mounted on udev devtmpfs 379248 333 378915 1% 10240 0 10240 0% - /dev tmpfs tmpfs 381554 498 381056 1% 610488 9704 600784 2% - /run /dev/sdc1 ext3 956592 224532 732060 24% 14932444 7836056 6331204 56% - / tmpfs tmpfs 381554 1 381553 1% 1526216 0 1526216 0% - /dev/shm tmpfs tmpfs 381554 4 381550 1% 5120 0 5120 0% - /run/lock tmpfs tmpfs 381554 14 381540 1% 1526216 0 1526216 0% - /sys/fs/cgroup /dev/sda btrfs 0 0 0 - 2930266584 69405248 2859579472 3% - /data tmpfs tmpfs 381554 4 381550 1% 305244 0 305244 0% - /run/user/0
以人类可读的格式表达 df 输出,同时列出 Linux 下的磁盘空间使用情况
传递-h选项以人类可读的格式查看输出。您将获得以 GB、TB 或 MB 为单位的 Linux 硬盘或设备空间大小:
$ df -h ### Human format
$ df -m ### Show output size in one-megabyte
$ df -k ### Show output size in one-kilobyte blocks (default)
使用 inode 使用情况而不是块使用情况显示磁盘大小空间输出
inode是 Linux 文件系统上存储文件所有信息的数据结构。要列出 Linux 磁盘空间的 inode 信息,请输入:
示例输出:
$ df -i
$ df -i -h
Filesystem Inodes IUsed IFree IUse% Mounted on udev 371K 333 371K 1% /dev tmpfs 373K 498 373K 1% /run /dev/sdc1 935K 220K 715K 24% / tmpfs 373K 1 373K 1% /dev/shm tmpfs 373K 4 373K 1% /run/lock tmpfs 373K 14 373K 1% /sys/fs/cgroup /dev/sda 0 0 0 - /data tmpfs 373K 4 373K 1% /run/user/0
找出显示的每个文件系统的类型
传递-T选项以显示列出的每个文件系统的类型,例如 ext4、btrfs、ext2、nfs4、fuse、cgroup、cputset 等,以及 Linux 磁盘空间使用情况和大小。例如:
以下输出显示 Linux 磁盘空间使用情况以及文件系统类型:
$ df -T
$ df -T -h
$ df -T -h /data/
Filesystem Type Size Used Avail Use% Mounted on /dev/sda btrfs 2.8T 67G 2.7T 3% /data
将列表限制为给定类型的文件系统
语法是:
$ df -t ext3 #Only see ext3 file system
$ df -t ext4 #Only see ext4 file system
$ df -t btrfs #Only see btrfs file system
检查磁盘空间使用情况时排除给定的文件系统类型
要列出所有但排除 ext2 文件系统并传递该-x TYPE选项,请输入:
$ df -x ext2
要在 Ubuntu Linux 上隐藏 squashfs 文件系统垃圾邮件,同时检查由 snap pacakges 创建的磁盘空间使用情况:
$ df -x squashfs
检查所有 Linux 磁盘空间报告
将-a或--all选项传递给 df 命令以包含所有可能的文件系统和磁盘空间。例如:
$ df -a
这是我看到的:
Filesystem 1K-blocks Used Available Use% Mounted on sysfs 0 0 0 - /sys proc 0 0 0 - /proc udev 10240 0 10240 0% /dev devpts 0 0 0 - /dev/pts tmpfs 610488 9708 600780 2% /run /dev/sdc1 14932444 7836084 6331176 56% / securityfs 0 0 0 - /sys/kernel/security tmpfs 1526216 0 1526216 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 1526216 0 1526216 0% /sys/fs/cgroup cgroup 0 0 0 - /sys/fs/cgroup/systemd pstore 0 0 0 - /sys/fs/pstore cgroup 0 0 0 - /sys/fs/cgroup/cpuset cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct cgroup 0 0 0 - /sys/fs/cgroup/blkio cgroup 0 0 0 - /sys/fs/cgroup/memory cgroup 0 0 0 - /sys/fs/cgroup/devices cgroup 0 0 0 - /sys/fs/cgroup/freezer cgroup 0 0 0 - /sys/fs/cgroup/net_cls,net_prio cgroup 0 0 0 - /sys/fs/cgroup/perf_event systemd-1 - - - - /proc/sys/fs/binfmt_misc fusectl 0 0 0 - /sys/fs/fuse/connections debugfs 0 0 0 - /sys/kernel/debug mqueue 0 0 0 - /dev/mqueue hugetlbfs 0 0 0 - /dev/hugepages /dev/sda 2930266584 69405248 2859579472 3% /data rpc_pipefs 0 0 0 - /run/rpc_pipefs tmpfs 305244 0 305244 0% /run/user/0 binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
默认情况下省略这些文件系统。
获取有关 df 命令的更多帮助
通过--help选项查看有关在 Linux 上检查磁盘空间命令使用情况的简短帮助信息:
$ df --help
或者通过键入以下 man 命令来阅读其手册页:
$ man df
Linux 使用 du 命令检查磁盘空间
du 命令对于追踪磁盘空间占用情况非常有用。它对于找出占用大量磁盘空间的目录和文件的名称非常有用。基本语法是:要查看目录树中
每个目录(包括所有子目录)的名称和空间占用情况,请输入:
示例输出:
$ du
$ du /path/do/dir
$ du [options] [directories and/or files]
$ du
16 ./.aptitude 12 ./.ssh 56 ./apcupsd 8 ./.squidview 4 ./kernel.build 12 ./.elinks 8 ./.vim 8 ./.config/htop 12 ./.config 648 .
第一列以千字节(文件大小)表示,第二列是文件名或目录名。
以可读格式查看 du 输出
传递-h选项以 K(千字节)、M(兆字节)、G(千兆字节)而不是默认的千字节显示大小:
$ du -h
示例输出:
16K ./.aptitude 12K ./.ssh 56K ./apcupsd 8.0K ./.squidview 4.0K ./kernel.build 12K ./.elinks 8.0K ./.vim 8.0K ./.config/htop 12K ./.config 648K .
查找有关任何目录树或文件的信息
要了解 /etc/ 目录的空间使用情况,请输入:
以下内容将报告位于 /sbin 目录中的 hdparm、iptunnel 和 ifconfig 三个文件的大小:
示例输出:
$ sudo du /etc/
$ sudo du -h /etc/
$ du /sbin/hdparm /sbin/iptunnel /sbin/ifconfig
$ du -h /sbin/hdparm /sbin/iptunnel /sbin/ifconfig
112K /sbin/hdparm 24K /sbin/iptunnel 72K /sbin/ifconfig
如何汇总给定目录名的磁盘使用情况?
将选项传递-s给 du 命令。在此示例中,要求 du 命令仅报告目录树占用的总磁盘空间并抑制子目录:
示例输出:
$ sudo du -s /etc/
$ sudo du -sh /etc/
6.3M /etc/
传递-a(全部)选项来查看所有文件,而不仅仅是目录:
示例输出:
# du -a /etc/
# du -a -h /etc/
4.0K /etc/w3m/config 4.0K /etc/w3m/mailcap 12K /etc/w3m 4.0K /etc/ConsoleKit/run-seat.d 4.0K /etc/ConsoleKit/seats.d/00-primary.seat 8.0K /etc/ConsoleKit/seats.d 4.0K /etc/ConsoleKit/run-session.d 20K /etc/ConsoleKit ... .... .. ... 4.0K /etc/ssh/ssh_host_rsa_key 4.0K /etc/ssh/ssh_host_rsa_key.pub 4.0K /etc/ssh/ssh_host_dsa_key 244K /etc/ssh/moduli 4.0K /etc/ssh/sshd_config 272K /etc/ssh 4.0K /etc/python/debian_config 8.0K /etc/python 0 /etc/.pwd.lock 4.0K /etc/ldap/ldap.conf 8.0K /etc/ldap 6.3M /etc/
您还可以使用星号 ( *) 通配符,它将匹配任何字符。例如,要查看当前目录中每个 png 文件的大小,请输入:
$ du -ch *.png
52K CIQTK4FUAAAbjDw.png-large.png 68K CX23RezWEAA0QYucaifslkcfuvmosolwdslgivbjdulius.png-large.png 228K CY32cShWkAAaNLD.png-large.png 12K CYaQ3JqU0AA-amA.png-large.png 136K CYywxDfU0AAP2py.png 172K CZBoXO1UsAAw3zR.png-large.png 384K Screen Shot 2016-01-19 at 5.49.21 PM.png 324K TkamEew.png 8.0K VQx6mbH.png 64K fH7rtXE.png 52K ipv6-20-1-640x37odslsselrwxmibgwqrjtmtenegmdxtre.png 392K unrseYB.png 1.8M total
该-c选项告诉 du 显示总计。
综合起来
要列出/etc/ 中占用磁盘空间最多的 10 个目录
# du -a /etc/ | sort -n -r | head -n 10
,请输入:
示例输出:
8128 /etc/ 928 /etc/ssl 904 /etc/ssl/certs 656 /etc/apache2 544 /etc/apache2/mods-available 484 /etc/init.d 396 /etc/php5 336 /etc/sane.d 308 /etc/X11 268 /etc/ssl/certs/ca-certificates.crt
有关 du 命令的更多信息,请输入:
$ man du
$ du --help
处理 btrfs 文件系统
对于 btrfs 文件系统,使用 btrfs fi df 命令查看挂载点的空间使用情况信息。语法为:
btrfs filesystem df /path/ btrfs fi df /dev/path btrfs fi df [options] /path/
示例
让我们尝试一些例子:
示例输出:
$ sudo btrfs fi df /data/
$ sudo btrfs fi df -h /data/
Data, RAID1: total=71.00GiB, used=63.40GiB System, RAID1: total=8.00MiB, used=16.00KiB Metadata, RAID1: total=4.00GiB, used=2.29GiB GlobalReserve, single: total=512.00MiB, used=0.00B
要查看字节中的原始数字,请运行:
$ sudo btrfs fi df -b /data/
或
$ sudo btrfs fi df -k /data/ ### show sizes in KiB ##
$ sudo btrfs fi df -m /data/ ### show sizes in MiB ##
$ sudo btrfs fi df -g /data/ ### show sizes in GiB ##
$ sudo btrfs fi df -t /data/ ### show sizes in TiB ##
结论
以下是 Linux 检查磁盘空间命令的简要摘要。需要估计文件空间使用情况时,请使用 du 命令。要报告 Linux 文件系统磁盘空间使用情况,请使用 df 命令。使用 btrfs 文件系统时必须使用 btrfs df 命令。有关更多信息,请参阅此处的GNU coreutils 页面。您也可以在本地阅读手册页。只需尝试以下帮助命令或 man 命令:
$ man du
$ man df
$ man btrfs
参见
- 如何了解 Linux CPU 利用率和使用情况?
- Linux 检查磁盘空间命令来查看系统磁盘使用情况
- 如何检查 Linux 中的内存利用率
- 每个系统管理员都应该知道的 30 个 Linux 系统监控工具
- 检查 Linux 中的交换使用大小和利用率
- 如何找出 Linux 磁盘利用率?
- 排名前 7 位的 Linux GPU 监控和诊断命令行工具
- 如何找出 Linux 资源利用率来检测系统瓶颈?
- Linux 使用 Nethogs 工具查看每个进程的带宽使用情况
- 总结 Linux/Unix 上给定命令的详细系统资源使用情况
- 如何将 Linux 系统利用率数据收集到文件中
- Linux 显示主机网络接口的带宽使用情况
- Ubuntu 安装 vnstat 控制台网络流量监视器
- Linux 分别查找多个 SMP CPU 处理器的利用率