디렉토리 트리에 더 이상 표시되지 않는 하드 드라이브의 데이터를 열었던 프로세스를 찾으십시오.

디렉토리 트리에 더 이상 표시되지 않는 하드 드라이브의 데이터를 열었던 프로세스를 찾으십시오.

내 서버에서 루트 파티션은 73GB이지만 장치에서 약 6GB만 사용되는 경우에도 디스크가 꽉 찬 것으로 표시됩니다.

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
udev                        997M     0  997M   0% /dev
tmpfs                       202M   41M  162M  20% /run
/dev/mapper/p22server-root   73G   68G  655M 100% /

(저는 서버에서 LVM을 사용하고 있습니다 /dev/mapper/p22server-root -> ../dm-0:) 확인해 보면

ncdu -x /

총 사용량은 5.9GB에 불과한 것으로 나타났습니다.

내 생각에는 아직 열려 있지만 파일 트리에는 표시되지 않는 일부 파일이 있어야 하는 것 같습니다.

어떻게 디버깅할 수 있나요? 재부팅하면 잃어버린 공간이 복구될 줄 알았는데 지금은 재부팅이 불가능하네요.

답변1

의심이 사실이라면 대처하기가 더 쉬울 수도 있습니다.라소프.

출력에서 "(제거됨)" 또는 유사한 항목을 찾으십시오.

답변2

두 가지 가능성이 있습니다:

1. 일부 프로세스에서는 삭제된 파일이 여전히 열려 있습니다.

열려 있는 모든 파일을 볼 수 있습니다 lsof. 예를 들어, 다음은 표시되는 유형 lsof과 출력에 나타나는 빈도입니다.

# lsof|cut -c50-54|sort|uniq -c
 375  CHR 
 610  DIR 
 211 FIFO 
  32 IPv4 
  17 IPv6 
  40 link 
 419 node 
 152 nown 
6008  REG 
   9 sock 
 598 unix 

이는 파일 설명자 열(FD)만 표시합니다.

# lsof|awk -v field="FD" 'NR==1 {c = index($0,field)} {print substr($0,c-1,length(field)+4)}'|sort|uniq -c|sort -n|tail

DEL힌트를 보려면 출력에서 ​​이 값이 있는 파일을 찾으세요 lsof.


2. 마운트 지점 뒤에 숨겨진 파일

그러나 이러한 파일은 설치 폴더에 많은 수의 파일이 저장되어 있을 때 사용되지 않은 마운트 지점으로 인해 단순히 "숨겨져" 있었으며 이제는 ncdu.

루트 디렉터리를 다른 위치에 마운트하고 분석합니다.

mkdir /temp-root
mount --bind / /temp-root
ncdu -x /temp_root

관련 정보