NFS를 통해 원격 파일 시스템을 마운트한 Solaris 10 서버가 있습니다. 원격 시스템이 NetApp이라고 생각하지만 확실하지 않습니다.
실행하면 df -h <mountpoint>
크기가 12T이고 용량이 87%인 10T를 사용했습니다.
마운트 지점으로 변경하고 실행하면 ls -A |xargs du -s
약 8MB가 생성됩니다. 나는 du가 재귀적으로 내려와 모든 파일 크기를 합산할 것으로 예상했지만 여기서는 그렇게 하지 않는 것 같습니다.
울타리로서 나는 달렸다
find <mountpoint> -ls | awk '{total=total+$7}END{print total}'
대답은 13006791645입니다. 1024^3(1073741824)으로 나누면 약 12.1테라바이트가 됩니다.
그래서 그것은 그렇게 보일 find -ls
것이고 df
어느 정도 동의하는 것 같습니다. 왜 그렇게 심각하게 실패했을까요?
추신: 이 명령은 ls -A
숨겨진 스냅샷 디렉터리도 가져오지만 find는 아무것도 찾지 못합니다("주기 감지됨" 제외).
답변1
du -s
512바이트 블록으로 보고합니다. 은 (는) 사람이 읽을 수 있는 데이터를 보고하지 않으므로 와 (과) 비교할 df -h
수 없습니다 .du
두 값을 비교하려면 du -sh <mountpoint>
또는 를 사용하여 512바이트 단위로 보고 /usr/xpg4/bin/df -P
하도록 하세요 .df
에 따르면 man du
:
여러 링크가 포함된 파일은 하나의 항목에 대해서만 계산되고 기록됩니다. 보고서에서 선택한 디렉토리 항목이 지정되지 않았습니다. 기본적으로 파일 크기는 512바이트 단위로 기록되며 다음 512바이트 단위로 반올림됩니다.
/usr/xpg4/bin/df -P
다음을 통해 보고된 512바이트를 얻으 십시오 df
.
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 /var