用这个巧妙的技巧让 du 的输出更有用
对于系统管理员或开发人员来说,了解文件或文件夹在分区上占用的空间大小至关重要。了解这些信息可以让您规划存储升级、管理和轮换文件以及执行其他必要的系统管理任务。我最喜欢的用于此类数据收集的命令是du
命令。
该du
命令汇总了每个文件和每个目录的磁盘使用情况。它提供了许多有用的选项,无论是单独使用还是以正确的组合使用。有关所有选项,请参阅 du 手册页。这是我最喜欢的技巧之一du
。
使用 du
我通常喜欢同时检查多个目录的使用情况。这样,我就知道哪些目录对我的危害最大。假设我想检查 中的所有目录/var
。这是我的标准du
命令,为了清楚起见,带有较长的选项:
$ du --all --human-readable \
--one-file-system \
--max-depth=1 /var
以下是每个选项的细分(括号中为简短版本):
-
--all
(-a
):打印所有文件和文件夹。 --human-readable
(-h
):以大块而不是字节为单位打印大小(例如,1K 而不是 1024)。--one-file-system
(-x
):跳过不同文件系统上的目录。结果是,如果/var/log
单独安装,则不会计算在内,因为它位于单独的文件系统上。这确保我只看到一个目录路径下使用的磁盘空间,而不是跨物理介质使用的磁盘空间。--max-depth=1
(-d
):仅当目录(或文件,用--all
)低于 一级时才打印其总数/var
。如果改用2
,它将打印低于 两级的文件夹/var
。与--one-file-system
选项不同,使用此选项报告的大小保持不变;我只是不必看到那么多输出。
以下是我常用的命令的示例输出du
:
$ du -ahx --max-depth=1 /var
0 /var/lock
0 /var/mail
0 /var/run
12K /var/kerberos
12K /var/sieve
135M /var/spool
1.6G /var/log
181M /var/cache
20K /var/db
336K /var/named
3.7G /var/vmail
4.0K /var/adm
4.0K /var/crash
4.0K /var/ftp
4.0K /var/games
4.0K /var/gopher
4.0K /var/local
4.0K /var/nis
4.0K /var/opt
4.0K /var/preserve
4.0K /var/.updated
4.0K /var/yp
4.2G /var/lib
44K /var/tmp
8.0K /var/empty
9.7G /var
虽然这个输出不错,但最好按容量排序。这样,一眼就能看懂。
技巧:对输出进行排序
好消息是,我可以通过传递输入来按任意顺序对输出进行排序sort -k1 -rh
。例如,当我运行命令按第一列(容量)对输出进行排序时,我得到的结果如下:
$ du -ahx --max-depth=1 /var | sort -k1 -rh
9.7G /var
4.2G /var/lib
3.7G /var/vmail
1.6G /var/log
181M /var/cache
135M /var/spool
336K /var/named
44K /var/tmp
20K /var/db
12K /var/sieve
12K /var/kerberos
8.0K /var/empty
4.0K /var/yp
4.0K /var/.updated
4.0K /var/preserve
4.0K /var/opt
4.0K /var/nis
4.0K /var/local
4.0K /var/gopher
4.0K /var/games
4.0K /var/ftp
4.0K /var/crash
4.0K /var/adm
0 /var/run
0 /var/mail
0 /var/lock
监视磁盘使用情况
There are also graphical tools to check disk space, such as the ncdu
command, but for me, the du
command is simple, direct, and efficient. I hope that this quick tip helps you level up your sysadmin fundamentals. These options have made gathering file capacity data much easier for me, and when entered as an alias in your .bashrc, it becomes second nature.