如何在 Linux 中检查磁盘空间和使用情况

在管理服务器时,管理系统资源至关重要。Linux有许多优点和好处,这使其成为最流行的操作系统之一。每台服务器都有大量的资源,如内存、计算能力等。最重要的系统资源之一是硬盘空间。为了有效地管理您的服务器并确保不会出现意外中断,您需要经常管理您的磁盘空间。当您的系统空间不足时,系统上托管的应用程序或数据库将崩溃。从崩溃中恢复可能需要一些时间,并且您可能会丢失未刷新到磁盘的重要数据,因为磁盘空间不足。

Linux 生态系统为您提供了 df(代表磁盘空闲)命令,可以从命令行查找磁盘空间利用率信息。当然,在像 Ubuntu 这样基于 Linux 的 GUI 操作系统中,您可以从 GUI(使用 Disk Usage Analyzer 工具)和命令行获取可用磁盘空间。

使用命令 df (disk free) 在 Linux 中检查磁盘空间

df 命令的准系统版本将以 1KB(千字节)块为单位显示不同驱动器占用的空间。在输出中,您将获得安装点信息、可用空间和已用空间以及磁盘的占用百分比。要检查所有文件系统的磁盘空间及其磁盘使用情况,您需要登录 Linux 终端并键入以下命令:


[root@centos ~]# df
File system     1K-blocks    Used Available Use% Mounted on
devtmpfs          8086916       0   8086916   0% /dev
tmpfs             8102060       0   8102060   0% /dev/shm
tmpfs             8102060   16776   8085284   1% /run
tmpfs             8102060       0   8102060   0% /sys/fs/cgroup
/dev/vda1       330147436 3237576 310116312   2% /
tmpfs             1620412       0   1620412   0% /run/user/0


您可以在df命令中使用许多选项来检查磁盘空间:

usage: df [-b | -H | -h | -k | -m | -g | -P] [-ailn] [-T type] [-t] [file system ...]

让我们看看一些重要的。

人类可读格式的磁盘空间

df命令读取磁盘空间时面临的第一个困难是磁盘空间默认以字节为单位。要以人类可读的格式(即 KB、MB、GB 和 TB)获取此数据,请使用 -h(1024 次幂)或 -H(1000 次幂)选项,如下所示:

[root@centos ~]# df -h
File system      Size  Used Avail Use% Mounted on
devtmpfs         7.8G     0  7.8G   0% /dev
tmpfs            7.8G     0  7.8G   0% /dev/shm
tmpfs            7.8G   17M  7.8G   1% /run
tmpfs            7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/vda1        315G  3.1G  296G   2% /
tmpfs            1.6G     0  1.6G   0% /run/user/0

总可用磁盘空间和总已用磁盘空间的摘要

有时,出于报告和警报目的,使用总可用磁盘空间和总已用磁盘空间很方便。您还可以使用 Nagios 或 DataDog 等警报服务获取此数据,而不是直接从操作系统上的 CLI 运行此命令。

[root@centos ~]# df --total

File system     1K-blocks    Used Available Use% Mounted on
devtmpfs          8086916       0   8086916   0% /dev
tmpfs             8102060       0   8102060   0% /dev/shm
tmpfs             8102060   16776   8085284   1% /run
tmpfs             8102060       0   8102060   0% /sys/fs/cgroup
/dev/vda1       330147436 3237576 310116312   2% /
tmpfs             1620412       0   1620412   0% /run/user/0
total           364160944 3254352 344113044   1% -

具有文件系统类型的磁盘空间

此命令可帮助您获取文件系统类型以及df命令提供的常用信息:

[root@centos ~]# df -h -T
File system     Type      Size  Used Avail Use% Mounted on
devtmpfs        devtmpfs  7.8G     0  7.8G   0% /dev
tmpfs           tmpfs     7.8G     0  7.8G   0% /dev/shm
tmpfs           tmpfs     7.8G   17M  7.8G   1% /run
tmpfs           tmpfs     7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/vda1       ext4      315G  3.1G  296G   2% /
tmpfs           tmpfs     1.6G     0  1.6G   0% /run/user/0

Inode 中的磁盘空间而不是 1K 块

如果您的应用程序会生成大量小文件并将它们本地存储在磁盘上,那么除了磁盘空间之外,您可能希望使用以下命令跟踪 Inode 使用情况:

[root@centos ~]# df -hi
File system     Inodes IUsed IFree IUse% Mounted on
devtmpfs          2.0M   347  2.0M    1% /dev
tmpfs             2.0M     1  2.0M    1% /dev/shm
tmpfs             2.0M   436  2.0M    1% /run
tmpfs             2.0M    17  2.0M    1% /sys/fs/cgroup
/dev/vda1          20M   33K   20M    1% /
tmpfs             2.0M     5  2.0M    1% /run/user/0

给定文件系统的磁盘空间

以下命令显示给定目录的使用情况以及安装该目录的文件系统上的可用空间和百分比使用情况:

[root@centos ~]# pwd
/root
[root@centos ~]# df /root
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1      330147436 3237576 310116312   2% /

使用 du(磁盘使用情况)命令检查 Linux 中的磁盘使用情况

虽然df命令可帮助您获取 Linux 系统上所有文件系统的可用和已占用磁盘空间的摘要,但du命令仅关注已占用空间。在的命令表示磁盘使用情况。du命令的基本用法示例如下所示:

[root@centos ~]# du
8./.ssh
1724456.

人类可读格式的磁盘使用情况

df -h类似,这里是du -h命令:

[root@centos ~]# du -h
8.0K./.ssh
1.7G.

当前工作目录的磁盘使用量以及总使用量

所述-c选项增加总的使用情况摘要的端部作为显示在下面的结果:

[root@centos ~]# du -ch
8.0K./.ssh
1.7G.
1.7Gtotal

所有文件、目录和子目录的磁盘使用情况

此命令将获取所有文件、目录和子目录的文件和目录大小。在具有大量文件的系统上使用它时要小心。此命令很有用,但与grepsort结合使用时。

[root@centos ~]# du -ach
4.0K./.tcshrc
4.0K./.ssh/authorized_keys
8.0K./.ssh
4.0K./robots.txt
4.0K./do-bots.txt
4.0K./anaconda-ks.cfg
4.0K./cookies.txt
2.0M./Spotify201812.zip
4.0K./.bash_history
1.7G./Chicago.csv
4.0K./.bashrc
4.0K./.bash_logout
4.0K./combian.rar
4.0K./.cshrc
4.0K./.bash_profile
1.7G.
1.7Gtotal

排除某些类型的文件后的磁盘使用情况

如果要排除隐藏文件,请在du命令中添加–exclude “./.*”选项:

[root@centos ~]# du -ach --exclude "./.*"
4.0K./robots.txt
4.0K./do-bots.txt
4.0K./anaconda-ks.cfg
4.0K./cookies.txt
2.0M./Spotify201812.zip
1.7G./Chicago.csv
4.0K./combian.rar
1.7G.
1.7Gtotal

磁盘使用量最大的文件或目录优先

检查磁盘使用情况的主要原因之一是清理多余或不必要的文件占用的空间。您可以运行以下命令首先根据最大文件检查磁盘空间:

[root@centos ~]# du -ah --exclude "./.*" | sort -n
1.7G.
1.7G./Chicago.csv
2.0M./Spotify201812.zip
4.0K./anaconda-ks.cfg
4.0K./combian.rar
4.0K./cookies.txt
4.0K./do-bots.txt
4.0K./robots.txt

这些是在 Linux 中检查磁盘使用情况和磁盘空间的一些最常用的命令。

Scroll to Top