[英]huge difference between du and df results' on NFS
我知道有几个关于“du 和 df”的主题,但我的主题似乎与我不同。
下面,正如您所看到的,我的 NFS 挂载的使用率为 %53 和 106 GB。
[root@myhost imp_test]# df -kh
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 856K 32G 1% /dev/shm
tmpfs 32G 433M 31G 2% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 80G 4.5G 76G 6% /
/dev/sdc 40G 475M 40G 2% /var/log
NFS Mount 200G 106G 94G 53% /usr/imp_test
tmpfs 6.3G 0 6.3G 0% /run/user/65215
然而,实际使用情况完全不同(我缩短了文件名,所有这些文件都是使用 pg_dump 生成的 PostgreSQL 转储文件)。 我想指出“myfiles_x”和“myfiles_y”文件。
[root@myhost imp_test]# cd /usr/imp_test
[root@myhost imp_test]# du -sh *
17G myfiles
25G myfiles
12G myfiles
4.3G myfiles
23M myfiles
62G myfiles_x
62G myfiles_y
7.8G myfiles
只有这些文件占用 124 GB。 从所有其他问题我知道 du 和 df 的结果不能匹配,但在所有这些问题上(据我检查)“df”结果的使用率高于“du”s output。大约,总和“du”的 output 是 190GB,是“df”结果的 2 倍。
顺便说一句,“myfiles_x”和“myfiles_y”是完全相同的文件,但名称不同,并且它们之间没有符号链接。
怎么可能或者我错过了其他东西?
谢谢!
根据这个答案,您的 shell 可能会扩展符号链接。
概括:
*
是一个 shell 球体; 在运行任何命令之前,它由 shell 扩展。
您可能希望在du
之前使用find
(因为 bash shell 没有为您提供不扩展符号链接的选项)。
find
示例:
find ./ -mindepth 1 -maxdepth 1 -type d -name myfiles* -exec du -sh {} +
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.