NFS를 통해 마운트된 원격 파일 시스템이 있는 Solaris 10 서버가 있습니다. 원격 시스템이 NetApp이라고 생각하지만 확실하지는 않습니다.
실행해 보니 df -h <mountpoint>
크기는 12T, 사용은 10T, 용량은 87%가 나옵니다.
마운트 지점으로 변경하고 실행하면 ls -A |xargs du -s
약 8MB의 공간이 확보됩니다. 나는 du가 재귀적으로 내려와 모든 파일 크기를 합산할 것으로 예상했지만 여기서는 그렇지 않은 것 같습니다.
울타리로서 나는 달렸다
find <mountpoint> -ls | awk '{total=total+$7}END{print total}'
답은 13006791645 입니다. 1024^3(1073741824)으로 나누면 약 12.1TB가 됩니다.
그래서 find -ls
그것은 df
다소 일관성이 있는 것 같습니다. 왜 그렇게 심하게 실패했나요?
추신: 이 명령은 ls -A
숨겨진 스냅샷 디렉터리도 가져오지만 find는 아무것도 찾지 못합니다("루프 감지" 제외).
답변1
du -s
512바이트 블록으로 보고됩니다. 사람이 읽을 수 있는 데이터는 보고되지 않으므로 df -h
비교가 불가능합니다.du
두 값을 비교하려면 512바이트 단위로 보고 du -sh <mountpoint>
하거나 사용 /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