디스크가 꽉 찼지만 큰 파일이나 폴더를 찾을 수 없습니다


20

우분투 서버는 거의 모든 디스크를 사용한다는 것을 보여줍니다.

Usage of /:   95.5% of 118.12GB

그리고 큰 폴더와 파일을 찾으려면 ncdu를 실행하십시오.

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                 
--- / ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    5.5GiB [##########] /root                                                                                                                                                                               
    2.3GiB [####      ] /var
  628.6MiB [#         ] /usr
  209.9MiB [          ] /lib
   28.2MiB [          ] /boot
    8.6MiB [          ] /bin
    7.7MiB [          ] /sbin
    6.6MiB [          ] /etc
  208.0KiB [          ] /run
  112.0KiB [          ] /tmp
   48.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /dev
    8.0KiB [          ] /media
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

에 따르면 ncdu나는 약 사용 10 GiB128 GiB- 그것은 관한 것입니다 10 %. 모순.

ubutntu server재부팅하지 않고 청소하는 방법 ?

나는 그것이 ncdu거짓말을하고 다른 앱을 사용하여 큰 파일과 폴더를 찾았습니다. 그들 모두와 같은 결과를 보여줍니다 ncdu.

그리고 df -h명령은 디스크가 꽉 찼음을 보여줍니다.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda       119G  113G     0 100% /
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           788M  212K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm

최신 정보

sudo du -sch /* 결과:

/# sudo du -sch /*
8.7M    /bin
29M /boot
8.0K    /dev
6.6M    /etc
4.0K    /home
0   /initrd.img
210M    /lib
4.0K    /lib64
16K /lost+found
8.0K    /media
4.0K    /mnt
48K /opt
du: cannot access `/proc/4470/task/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/task/4470/fdinfo/4': No such file or directory
du: cannot access `/proc/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/fdinfo/4': No such file or directory
0   /proc
5.0G    /root
212K    /run
7.8M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
112K    /tmp
629M    /usr
2.3G    /var
0   /vmlinuz
8.1G    total

8.1G 평소와 같이 총계. 그러나 나는 cannot access행 때문에 문제가있을 수 있습니다.

그런 다음에서 가장 큰 폴더를 확인했습니다 /. 그것은이다 /root:

/# sudo du -sch /root/*
96K /root/Downloads
2.5G    /root/Dropbox
36K /root/nohup.out
4.0K    /root/npm-debug.log
4.0K    /root/readonly
980K    /root/redis-2.6.16.tar.gz
228M    /root/tmp
2.7G    total

생각 만해도 / var / log /의 내용을 확인하여 로그가 외향적으로 커 졌는지 확인할 수 있습니다.
Mordoc

/ var / log는 약 2GiB입니다. 괜찮습니다
Maxim Yefremov

1
시도 du -sch /*루트 디렉토리가 가장 많은 공간을 사용하고 있는지 확인하고, 가장 많은 공간을 사용하는 장소에 거기에서 내려.
DopeGhoti

@DopeGhoti 나는 시도했지만 8.1 GiB전체 에 대해 똑같은 것을 보았습니다 (업데이트에 추가되었습니다). 나머지는 어디에 있는지 알 수 없습니다100 GiB
Maxim Yefremov

2
나는 당신이 원하지 않지만 총알을 물고 재부팅합니다.
douggro

답변:


13

실험실 컴퓨터에서 이와 동일한 문제가 발생 했으며이 명령을 사용했습니다.

du -sch .[!.]* * |sort -h

아직 삭제하지 않은 휴지통과 같은 숨겨진 파일을 찾을 수있었습니다.

신용하기 에 여기 내가 원래이 대답을 발견 한 곳.


놀라운 해결책!
AivanF.

5

프로세스에서 여전히 열려있는 삭제 된 파일을 확인하십시오.
sudo lsof | grep deleted | less

pid 및 파일 설명자가 표시됩니다. 나는 서버 에서이 정확한 문제를 겪었 ncdu지만 디스크를 채우는 것 외에는 아무것도 없습니다 . 파일을 마운트 된 삼바 공유로 옮기는 야간 프로세스로 밝혀졌으며 때로는 파일 핸들을 올바르게 닫지 않은 것 같습니다.

삭제 된 파일을 찾아서 정리하려면 재부팅이 가장 쉬운 방법 일 것입니다. 또는 프로세스를 종료 할 수 있습니다. 또는 사용하지 않는 것이 확실한 경우 다음과 같이 수동으로 제로화 할 수 있습니다.
> /proc/14487/fd/12


이것은 내 문제였다. Tomcat은 80GB의 삭제 된 파일을 보유하고있었습니다. 다시 시작하면 문제가 해결되었습니다.
AFP_555

"재부팅"명령으로 충분하지 않은 경우 어떻게 삭제할 수 있습니까?
스파클

4

다음 명령은 --max-depth = 1 인 / home 디렉토리의 디스크 사용률을 보여줍니다.

user@linux:~$ sudo du -h -d 1 /

2

디스크 마운트를 확인하십시오. 내가 본 솔루션 중 어느 것도 마운트가있는 폴더가 차지하는 공간을 식별 할 수 없습니다.


어떤 제안? 나는 이것이 내 문제일지도 모른다
Eliethesaiyan


기본적으로으로 기존 마운트를 확인한 mount다음 마운트가있는 각 디렉토리에 대해 두 번째 마운트를 추가하십시오. 그런 다음 du새로 만든 마운트 와 같은 일반 디스크 도구를 사용 하여 범인인지 확인할 수 있습니다.
Rich Remer

1

우리는이 같은 문제가 있었고 var / lib / docker에 저장된 docker 이미지로 판명되었습니다.

ncdu는 사용자에게 보이지 않으므로 이들을 나열하지 않습니다. sudo에서 ncdu를 실행해도 도움이되지 않습니다.

이 명령은 기존 도커 이미지를 모두 제거합니다 ...

docker rmi $(docker images -a -q)


여기서도 같은 문제입니다. 사실, docker system prune모든 것을 찾지 못했습니다. 이 명령은 docker system prune 이전의 트릭입니다.
jscharf

1
최근에 우리는 그것이 docker system prune -a -f훨씬 더 철저 하다는 것을 발견했습니다
Baldy

0

다음 명령을 실행하여 상위 10 개의 가장 큰 파일을 찾을 수 있습니다.

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.