
이상한 불일치가 있습니다. "df"를 사용하면 내 루트 디스크가 거의 229G를 사용하고 있음을 알 수 있습니다.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dm-2 241G 229G 13G 96% /
하지만 "du"를 입력하면 약 12GB(반올림)만 사용하고 있음을 알 수 있습니다.
# du -sh /* | grep G
3.2G /run
2.1G /usr
6.0G /var
두 명령 모두 루트로 실행되었습니다. 내가 상상할 수 있는 것은 현재 NFS 공유가 마운트된 디렉토리에 "숨겨진" 데이터가 있다는 것입니다. 만일이 경우라면. "숨겨진" 파일이 무엇인지 어떻게 알 수 있습니까? 아니면 그 숫자가 왜 그렇게 완전히 다른지 다른 생각이 있나요?
답변1
아마도 해당 파일이 열려 있는 앱/프로세스가 있을 것입니다. 앱에서 열려 있는 파일을 삭제해도 파일이 메모리에 여전히 열려 있으므로 OS는 여전히 파일 크기를 df로 표시합니다.
다음은 귀하에게 필요한 것을 얻을 수 있도록 동료를 위해 제가 작성한 문서입니다.
열려 있는 대용량 파일 자르기
공간을 확보하기 위해 파일을 삭제했지만 이후에는 공간이 확보되지 않았습니다. 이제 df -lah와 du -lah는 서로 다른 크기를 표시합니다.
LSOF를 사용하여 삭제되었지만 보관된 파일 가져오기
lsof |grep deleted
삭제되었지만 앱에 의해 열려 있는 모든 파일이 표시됩니다.
java 2943 gateway 410w REG 253,3 50482102 139274 /opt/span/app/node/default/var/attachments/att180368_0.part (deleted)
java 2943 gateway 411w REG 253,3 46217973 139284 /opt/span/app/node/default/var/attachments/att182230_0.part (deleted)
java 2943 gateway 412w REG 253,3 50483894 139280 /opt/span/app/node/default/var/attachments/att181920_0.part (deleted)
앱을 다시 시작하여 파일을 잠금 해제하거나 파일을 자를 수 있습니다.
파일을 자르려면 위의 출력을 보고 PID 및 fd(파일 설명자 번호)를 가져와야 합니다.
다음을 사용하여 파일을 자릅니다.
echo > /proc/PID/fd/fd_number
예: 위에 나열된 3개의 파일 크기를 0으로 만들려면 다음을 실행합니다.
echo > /proc/2943/fd/410
echo > /proc/2943/fd/411
echo > /proc/2943/fd/412
구조를 위해 bash를 잘라낼 것이 많은 경우.
for n in {410..412}; do 'echo > /proc/2943/fd/$n'; done;
df -lah는 이제 여유 공간을 표시해야 하지만 파일은 lsof |grep 삭제 아래에 표시되지만 크기는 1입니다.
java 2943 gateway 410w REG 253,3 1 139274 /opt/span/app/node/default/var/attachments/att180368_0.part (deleted)
java 2943 gateway 411w REG 253,3 1 139284 /opt/span/app/node/default/var/attachments/att182230_0.part (deleted)
java 2943 gateway 412w REG 253,3 1 139280 /opt/span/app/node/default/var/attachments/att181920_0.part (deleted)
파일 설명자는 다음에 재부팅하거나 파일을 연 앱을 다시 시작/다시 로드할 때 해제됩니다.
물론 잠긴 파일의 출력과 일치하도록 명령을 조정해야 합니다.
답변2
제 경우에는 (PM에서 저에게 같은 말을 해주셔서 도움을 주셨는데요) 오버마운트 문제였습니다. 파티션의 디렉토리에 일부 데이터가 있었는데 du
마운트로 인해 숨겨졌기 때문에 볼 수 없었습니다.
그러니 노력해 보세요모든 마운트 해제나머지 디렉토리에서 데이터를 찾으십시오.
즐거운 시간 보내시고 감사합니다!