좋습니다. 저를 완전히 혼란스럽게 만드는 질문이 있습니다.
df -h
Dateisystem Größe Benut Verf Ben% Eingehängt auf
/dev/sda2 3,8G 1,5G 2,2G 41% /
/dev/sda1 122M 13M 103M 11% /boot
tmpfs 1014M 0 1014M 0% /dev/shm
/dev/sdb1 1016M 866M 150M 86% /srv
하지만:
du -hs /srv
55M /srv
참고용으로만 사용하세요:
mount | grep srv
/dev/sdb1 on /srv type xfs (rw)
그들 중 86%가 나에게 경고 이메일을 보냈는데(의도적인 것임) 이 /srv
이메일은 몇 시간 전에 삭제되었습니다.
를 사용하면 du
해당 파티션에 있는 올바른 양의 데이터를 얻을 수 있습니다. 그러나 df
이는 이해가 되지 않는 것 같습니다. 왜? (이 출력을 기반으로 주기적으로 경고 이메일을 받기 때문에 약간 짜증납니다.)
이것이 중요한지는 확실하지 않지만 CentOS 버전 5.11(최종) 서버를 사용하고 있습니다.
답변1
df
du
각 파일의 크기 정보를 사용하여 파일 시스템에서 할당된 블록을 계산합니다 . 다양한 이유로 차이가 발생할 수 있습니다.
1) 응용 프로그램에서 아직 열려 있는 연결 해제된(삭제된) 파일입니다. lsof +aL1 <filesystem>
프로세스를 식별하는 데 도움이 될 것입니다.
2) 마운트 지점 아래에 파일을 숨기면 도움이 될 수 있습니다 du
.debugfs
$ sudo debugfs
debugfs 1.42.12 (29-Aug-2014)
debugfs: open /dev/<the / file system device>
debugfs: cd /boot
debugfs: ls -l
1966081 40755 (2) 0 0 4096 26-May-2016 16:28 .
2 40555 (2) 0 0 4096 11-May-2016 10:43 ..
1974291 100644 (1) 0 0 0 26-May-2016 16:28 bob <---<<< /boot/bob is hidden by /boot fs
삼)스파스 파일실제보다 더 커 보이네요. 할당되지 않은 블록은 파일 크기에 포함되지 않지만 df
포함됩니다.
하드 링크는 기만적이지 않습니다.du
답변2
응용 프로그램에 여전히 파일이 열려 있으면 프로세스가 끝날 때까지 디스크 공간이 해제되지 않습니다. 무엇이 사용되고 있는지 확인 /srv
하고 중지/다시 시작