내 디스크를 채우는 파일을 찾는 방법

내 디스크를 채우는 파일을 찾는 방법

제가 겪고 있는 문제는 디스크가 꽉 찼는데 채울 파일을 찾을 수 없다는 것입니다. 내가 실행하면 df -h다음을 얻습니다.

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        53G   51G  2.0G  97% /
devtmpfs        2.0G  4.0K  2.0G   1% /dev
none            395M  204K  395M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

캐시, 로그, 자동 삭제된 파일을 모두 지웠습니다. 이 명령을 읽으면 다음과 같은 du -h /var | sort -nr | head -n 10 결과를 얻습니다.

1016K   /var/www/soFit/cache/class_folder-242/soinfitcom/cl
1016K   /var/www/landing/PHPMailer/vendor
1008K   /var/www/dating/libs/vendor
988K    /var/www/libs/mPDF/ttfontdata
968K    /var/www/landing/PHPMailer/vendor/phpmailer
964K    /var/www/landing/PHPMailer/vendor/phpmailer/phpmailer
960K    /var/www/soFitTest/groupChats/vendor/symfony/http-foundation
960K    /var/www/soFitTest/chat/vendor/symfony/http-foundation
960K    /var/www/soFit/groupChats/vendor/symfony/http-foundation
960K    /var/www/soFit/chat/vendor/symfony/http-foundation

사용du -x / | sort -rn | head -n 10

2471828 /
1592004 /var
1091532 /var/lib
929776  /var/lib/mysql
776620  /usr
715092  /var/lib/mysql/soFit
306064  /var/www
291376  /usr/lib
269176  /usr/share
180868  /var/www/libs

내 mysql 데이터베이스 크기는 약 500MB로 그다지 크지 않습니다.

51G 공간은 모두 어디로 갔는가?

내 Linux는: Debian GNU/Linux 7.11(헐떡임)

du -h --max-depth=1 /
4.0K    /dev
6.4M    /etc
4.0K    /mnt
759M    /usr
4.0K    /selinux
5.5M    /root
20K     /home
24K     /srv
4.0K    /opt
0       /sys
8.0K    /tigo
8.0K    /media
16K     /lost+found
1.6G    /var
6.5M    /sbin
4.0K    /lib64
7.0M    /bin
4.0K    /.ssh
204K    /run
15M     /lib
4.0K    /boot
12K     /tmp
du: cannot access `/proc/4557/task/19375/fdinfo/312': No such file or directory
du: cannot access `/proc/13067/task/13067/fd/4': No such file or directory
du: cannot access `/proc/13067/task/13067/fdinfo/4': No such file or directory
du: cannot access `/proc/13067/fd/5': No such file or directory
du: cannot access `/proc/13067/fdinfo/5': No such file or directory
0       /proc
61M     /backups

2.4G/

대답은 다음 명령을 사용하여 파일을 찾아 lsof | grep -i deleted삭제하는 것입니다.

그냥 재부팅하는 대신 머신을 완전히 종료하세요.

var/libs/mysql 삭제(없음).log

답변1

삭제된 대용량 파일을 열어두는 일부 프로세스가 있을 수 있습니다. 이러한 열린 파일 찾기를 사용하거나 lsof컴퓨터가 작동하는 경우(예: 계속 실행해야 하는 서버가 아닌 경우) 컴퓨터를 다시 시작할 수 있습니다. 바라보다열려 있지만 삭제된 대용량 파일 찾기 및 삭제 (죄송합니다. 휴대폰으로 입력해서 복사/붙여넣기가 불편합니다.)

답변2

정의한 깊이의 폴더 요약을 가져오는 매개변수 du -h와 함께 사용할 수 있습니다 . 예를 들어 사용할 수 있는 폴더 2개의 깊이에 대해 다음과 같습니다.--max-depth

du -h --max-depth=2 /

대부분의 데이터가 들어 있는 폴더를 찾으면(힌트 - 크기는 G 단위임) 해당 폴더에 대해 동일한 명령을 실행할 수 있습니다.

du -h --max-depth=2 /folder/which/holds/GB/OF/DATA

참고: 도움이 될 수 있는 몇 가지 그래픽 도구가 있습니다(사용 중인 Linux에 따라 다름).

Linux에서 디스크 사용 패턴을 분석하는 방법일부 Linux GUI 유틸리티에 대한 링크 저장

관련 정보