du命令用的好,磁盘空间全知了

简介: 服务器开发环境作为公共环境,经常会遇到磁盘空间爆满的情况(不知道您有没有遇到过,反正我经常遇到这个情况)。由于我们好多开发同学都在上面放文件,遇到这种情况就只能先删除自己的没用的文件了。但是,之前曾经遇到一个情况,我删除了之前存储的10个G文件,释放空间不到两分钟,磁盘空间又满了!!!

所以说,掌握服务器磁盘空间查看命令是非常重要滴,不然你怎么找出是什么问题导致磁盘空间增速这么快呢,废话少说,接下俩咱们看看如何精确使用du这个命令,让我们在平常开发中少走弯路。

说一下,以下命令都是centos7.6环境下的root用户执行的结果。

du

显示目录的磁盘使用率摘要

[root@hadoop3 /]# du /tmp
4       /tmp/.font-unix
4       /tmp/.ICE-unix
4       /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
8       /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
4       /tmp/.XIM-unix
260     /tmp/hsperfdata_root
4       /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
8       /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
4       /tmp/.Test-unix
4       /tmp/.X11-unix
300     /tmp

命令详解:不带任何选项的'du'命令将列出给定目录或当前工作目录中的所有文件和文件夹。此外,它还将沿着它们的路径以块的形式显示,在页面的底部,它将以块的形式显示总文件大小。正如您在上面的示例中看到的,文件路径和现有文件的块大小一起显示。但是,上面的输出不是可读的格式,这是它的主要缺点。

du -h

以可读的形式显示目录的磁盘使用率摘要

[root@hadoop3 /]# du -h /tmp
4.0K    /tmp/.font-unix
4.0K    /tmp/.ICE-unix
4.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
8.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
4.0K    /tmp/.XIM-unix
260K    /tmp/hsperfdata_root
4.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
8.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
4.0K    /tmp/.Test-unix
4.0K    /tmp/.X11-unix
300K    /tmp

命令详解:使用'du -h'选项将以"可读格式"列出所有输出。这个'-h'选项将块大小转换为可读的格式,如Bytes、Kilobytes、Megabytes或Gigabytes。在上面的例子中,您可以看到所有文件大小的输出K的形式打印。

du -sh

查看特定目录的总磁盘使用情况

[root@hadoop3 /]# du -sh /tmp
300K    /tmp

命令详解:'du -sh'选项将显示目录的确切使用大小。'-s'标志将显示包含块大小的目录总数,但'-h'标志的组合将把输出转换为可读的格式。该命令在实际中使用最为频繁。

du -a

列出该目录下所有文件/子文件的磁盘使用情况

[root@hadoop3 /]# du -a /tmp
4       /tmp/.font-unix
4       /tmp/.ICE-unix
4       /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
8       /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
4       /tmp/.XIM-unix
32      /tmp/hsperfdata_root/5057
32      /tmp/hsperfdata_root/3645
32      /tmp/hsperfdata_root/963
32      /tmp/hsperfdata_root/4034
32      /tmp/hsperfdata_root/11619
32      /tmp/hsperfdata_root/18122
32      /tmp/hsperfdata_root/12567
32      /tmp/hsperfdata_root/3820
260     /tmp/hsperfdata_root
4       /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
8       /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
4       /tmp/.Test-unix
0       /tmp/wrapper-680-1-in
4       /tmp/.X11-unix
0       /tmp/wrapper-680-1-out
300     /tmp

命令详解:使用'-a'选项,可以列出并打印每个文件的磁盘使用情况,包括目录和子目录。该命令可以识别给定路径下最大的文件/文件夹,并帮助您删除/清除未使用的或最大的文件,以便为服务器提供足够的空闲空间。在上面的示例中,可以看到与前面示例的不同之处,这里列出了包括目录在内的每个文件。如果你在上面的命令中加上'-h'标志,比如'du -ah',那么所有的输出都是人类可读的格式。

du -c

列出文件总的磁盘占用空间

[root@hadoop3 /]# du -ch /tmp
4.0K    /tmp/.font-unix
4.0K    /tmp/.ICE-unix
4.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
8.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
4.0K    /tmp/.XIM-unix
260K    /tmp/hsperfdata_root
4.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
8.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
4.0K    /tmp/.Test-unix
4.0K    /tmp/.X11-unix
300K    /tmp
300K    total

命令详解:使用'-c'选项将在输出的最底部列出总的使用磁盘空间。如果你在上面的命令中加上'-h'标志,比如'du -ch',那么所有的输出都是可读的格式。

du -BK/-BM/-BG

以指定容量单位输出文件/文件夹磁盘占用大小

[root@hadoop3 /]# du -BK /tmp
4K      /tmp/.font-unix
4K      /tmp/.ICE-unix
4K      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
8K      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
4K      /tmp/.XIM-unix
260K    /tmp/hsperfdata_root
4K      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
8K      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
4K      /tmp/.Test-unix
4K      /tmp/.X11-unix
300K    /tmp
[root@hadoop3 /]# du -BM /tmp
1M      /tmp/.font-unix
1M      /tmp/.ICE-unix
1M      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
1M      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
1M      /tmp/.XIM-unix
1M      /tmp/hsperfdata_root
1M      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
1M      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
1M      /tmp/.Test-unix
1M      /tmp/.X11-unix
1M      /tmp
[root@hadoop3 /]# du -BG /tmp
1G      /tmp/.font-unix
1G      /tmp/.ICE-unix
1G      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
1G      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
1G      /tmp/.XIM-unix
1G      /tmp/hsperfdata_root
1G      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
1G      /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
1G      /tmp/.Test-unix
1G      /tmp/.X11-unix
1G      /tmp

命令详解:将'-B'标记与'K'、'M'或'G'结合使用,可以将文件和目录的总磁盘使用情况分为千字节(Kilobytes)、兆字节(Megabytes)或千兆字节(Gigabytes)。但是请注意,在使用的时候请合理使用容量单位,不然就会出现上述情况,实际没有1M,用-BM会导致文件四舍五入容量。

du —max-depth=x

检查当前位置的所有子目录的大小

[root@hadoop3 /]# du -h --max-depth=1 /tmp
4.0K    /tmp/.font-unix
4.0K    /tmp/.ICE-unix
8.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
4.0K    /tmp/.XIM-unix
260K    /tmp/hsperfdata_root
8.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
4.0K    /tmp/.Test-unix
4.0K    /tmp/.X11-unix
300K    /tmp

命令详解:添加'—max-depth=x'参数,可以检查当前目录下x深度的子目录的磁盘容量大小。

du —exclude="xxx"

在计算磁盘大小时排除特定类型的文件

[root@hadoop3 /]# du -h --exclude="*.font-unix" /tmp
4.0K    /tmp/.ICE-unix
4.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
8.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
4.0K    /tmp/.XIM-unix
260K    /tmp/hsperfdata_root
4.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
8.0K    /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
4.0K    /tmp/.Test-unix
4.0K    /tmp/.X11-unix
296K    /tmp

命令详解:在'du'命令中使用'-exclude'选项,在计算所有文件和目录的磁盘使用情况时,我们可以删除一些特定的模式(如php、txt、png等扩展名)。

du —time

查看上次修改时间的磁盘使用情况

[root@hadoop3 /]# du -ha --time /tmp
4.0K    2021-02-26 12:19        /tmp/.font-unix
4.0K    2021-02-26 12:19        /tmp/.ICE-unix
4.0K    2021-11-20 23:29        /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ/tmp
8.0K    2021-11-20 23:29        /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-nginx.service-pt0CTJ
4.0K    2021-02-26 12:19        /tmp/.XIM-unix
32K     2021-12-06 00:17        /tmp/hsperfdata_root/5057
32K     2021-12-06 00:18        /tmp/hsperfdata_root/3645
32K     2021-12-06 00:17        /tmp/hsperfdata_root/963
32K     2021-12-06 00:18        /tmp/hsperfdata_root/4034
32K     2021-12-06 00:18        /tmp/hsperfdata_root/11619
32K     2021-12-06 00:18        /tmp/hsperfdata_root/18122
32K     2021-12-06 00:18        /tmp/hsperfdata_root/12567
32K     2021-12-06 00:18        /tmp/hsperfdata_root/3820
260K    2021-12-06 00:18        /tmp/hsperfdata_root
4.0K    2021-11-20 18:18        /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD/tmp
8.0K    2021-11-20 18:18        /tmp/systemd-private-31de4ddb230847ecb9b7d67391665ec2-chronyd.service-rVhZDD
4.0K    2021-02-26 12:19        /tmp/.Test-unix
0       2021-12-06 00:18        /tmp/wrapper-680-1-in
4.0K    2021-02-26 12:19        /tmp/.X11-unix
0       2021-12-06 00:18        /tmp/wrapper-680-1-out
300K    2021-12-06 00:18        /tmp

:在'du'命令中使用' time'选项,它将列出最后修改的文件和目录的日期和时间。

最后,通过上述详解,相信大家也可以清晰了解如何通过du命令来判断磁盘空间哪些目录增速过快问题!

相关文章
|
7月前
du命令
du命令
43 1
|
存储 Linux 索引
掌握磁盘空间:深入了解Linux命令`df`
在Linux系统管理中,了解磁盘空间的使用情况是至关重要的,尤其在处理大量数据和文件时。`df`命令作为一个简单而强大的工具,可以帮助你查看文件系统的磁盘空间使用情况。本文将详细介绍`df`命令的基本概念、用法和一些技巧。
155 0
|
7月前
磁盘使用情况查询 - du
【1月更文挑战第6天】
93 0
|
7月前
|
Linux 应用服务中间件 Shell
Linux下使用df与du命令查看磁盘空间
Linux下使用df与du命令查看磁盘空间
257 0
|
Linux
Linux磁盘空间的利器:`df` 和 `du`命令
Linux磁盘空间的利器:`df` 和 `du`命令
152 0
Linux磁盘空间的利器:`df` 和 `du`命令
|
Linux
Linux 磁盘空间 df & du 命令详解
Linux 磁盘空间 df & du 命令详解
142 0
|
IDE Unix Linux
linux中的tar打包、压缩多个文件、磁盘查看和分区类、du查看文件和目录占用的磁盘空间、df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的 文件格式.tar.gz)du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)du: disk usage 磁盘占用情况。详细的请看我之前发的博客。linux常用命令下。linux常用命令中。linux常用命令上。...............对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根 目录、一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理 方法,它整个文件系统中包含了一整套的文件和目录,并将一
432 1
linux中的tar打包、压缩多个文件、磁盘查看和分区类、du查看文件和目录占用的磁盘空间、df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
|
运维 Java Shell
记一次df -Th与du -sh空间大小不一致磁盘爆满问题的处理过程
记一次df -Th与du -sh空间大小不一致磁盘爆满问题的处理过程
379 0
记一次df -Th与du -sh空间大小不一致磁盘爆满问题的处理过程
|
监控 Linux 索引
【Linux】之【磁盘】相关的命令及解析[df、du、iostat、iotop]
df命令来自于英文词组”Disk Free“的缩写,其功能是用于显示系统上磁盘空间的使用量情况。df命令显示的磁盘使用量情况含可用、已有及使用率等信息,默认单位为Kb,建议使用-h参数进行单位换算。
379 0
【Linux】之【磁盘】相关的命令及解析[df、du、iostat、iotop]
|
Linux
Linux:df查看磁盘大小、du查看文件夹大小
Linux:df查看磁盘大小、du查看文件夹大小
162 0