我有一个Solaris 10服务器,它通过NFS安装了一个远程文件系统。我相信远程系统是一个NetApp,但还不清楚。
当我运行df -h 时,我得到了12T大小,使用了容量为87%的10T。
当我切换到挂载点并运行ls -A |xargs du -s时,我得到了大约8MB的内存。我已经开始期望du递归下降,并将所有文件大小加起来,但这里似乎没有这样做。
作为一个树篱,我跑
find -ls | awk '{total=total+$7}END{print total}'答案是13006791645。除以1024^3 (1073741824),我得到大约12.1兆字节。
因此,find -ls和df似乎多少达成了一致。为什么杜会这么可怕地失败呢?
PS:命令ls -A也抓取隐藏的快照目录,但是发现什么都找不到(除了“检测到的循环”)。
发布于 2019-12-06 15:41:54
du -s以512个字节块报告.您无法与df -h进行比较,因为du不报告人类可读的数据。
若要比较这两个值,请使用du -sh 或/usr/xpg4/bin/df -P让df也以512个字节单位报告。
根据man du的说法:
具有多个链接的文件将被计数,并只为一个条目编写。在报告中选择的目录条目是未指定的。默认情况下,文件大小是以512字节单位编写的,舍入到下一个512字节单位.
尝试/usr/xpg4/bin/df -P获取由df报告的512个字节:
bash-3.2$ /usr/xpg4/bin/df -P /var
Filesystem 512-blocks Used Available Capacity Mounted on
rpool/ROOT/s10/var
1147797504 66061270 954397119 7% /var并与du -s进行比较:
bash-3.2$ du -s /var
65976060 /var或比较:
bash-3.2$ df -h /var
Filesystem size used avail capacity Mounted on
rpool/ROOT/s10x_u11wos_24a/var
547G 32G 455G 7% /var通过以下方式:
bash-3.2$ du -hs /var
31G /varhttps://unix.stackexchange.com/questions/554521
复制相似问题