답변:
ncdu ( http://dev.yorhel.nl/ncdu )가 이것에 매우 도움이된다는 것을 알았습니다 .
분명히 더 정교한 방법이 있지만 내가 기억하는 방법은
du --max-depth = 1 -h /
이제 대부분의 공간을 사용하는 디렉토리를 가져와 (du --max-depth=1 -h /yourdir)
범인을 찾을 때까지 더 깊이 들어가십시오.
출력을 크기별로 정렬하고 사람이 읽을 수있는 형식을 신경 쓰지 않으려면 할 수도 있습니다du --max-depth=1 /your_dir | sort -n
df -k는 어떤 fs가 문제인지 보여줍니다. 그런 다음 최상위 디렉토리로 cd하고 du -xk | 정렬 -n | tail -25 이것은 9 일 이전에 정렬 된 상위 25 디렉토리를 표시하며 x를 d로 바꿉니다.
파일을 쓰는 동안 파일을 삭제할 수 있으므로 파일을 만들지 않고 작성 프로세스가 실행되는 동안 디스크 공간을 사용합니다.
일반적인 도구로는 찾을 수 없습니다. lsof를 사용하여 파일을 연 프로세스를 조사 할 수 있습니다.
/usr/sbin/lsof | grep deleted
이것을 얻는 데 사용 합니다.
시스템에서 소프트웨어를 실행할 수 있다면 xdiskusage 는 공간 을 차지하고 있는 디렉토리 / 파일을 그래픽으로 보여줍니다. 매우 유용합니다.
나는 KDE가 비슷한 것을 포함하고 있다고 생각합니다.
텍스트 전용이고 추가 소프트웨어를 설치할 수없는 경우 창의적으로 사용하면 문제 du
가 해결 될 수 있습니다.
head
및 의 순서를 변경하지 않으면 작동하지 않습니다 sort
. 또한 서식 기능을 사용해야합니다.
다음 명령을 사용하여 너무 많은 공간을 차지하는 파일 또는 폴더를 찾을 수 있습니다.
예를 들어 현재 폴더에서 가장 큰 상위 20 개 디렉토리를 표시하려면 다음 한 줄짜리를 사용하십시오.
du -ah . | sort -rh | head -20
또는:
du -a . | sort -rn | head -20
현재 디렉토리에서 상위 20 개의 가장 큰 파일 (재귀 적으로) :
ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20
또는 사람이 읽을 수있는 크기로 :
ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20
제대로 OSX / BSD에 작업에 두 번째 명령은 (등
sort
이없는-h
), 당신은 설치해야합니다sort
에서coreutils
. 그런 다음 bin 폴더를에 추가하십시오PATH
.
이 명령을 별칭으로 정의 할 수 있습니다 (예 : rc 파일에 추가 .bash_profile
).
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
그런 다음 생각되는 폴더 big
나 big-files
내부에서 실행 하십시오 (예 :에서 /home
).
다음은 데이터베이스 서버에서 불량 프로세스를 추적하기 위해 함께 모은 것입니다. rabbitfinder
#!/bin/sh
tree -s -f > /tmp/out1 && sleep 5 && tree -s -f > /tmp/out2; diff /tmp/out1 /tmp/out2 | egrep "\|--" | awk -F[ '{print $2}' | awk -F] '{print $2 }' | sort | uniq | xargs fuser -f | xargs ps -lFp
약간 엉뚱하고 강력하지는 않지만 다음과 같이 작동합니다.
ps -lFp
프로세스가 소유 한 파일을 보여줍니다
user@poseidon:~$ tree -s -f > /tmp/out1 && sleep 5 && tree -s -f > /tmp/out2; diff /tmp/out1 /tmp/out2 | egrep "\|--" | awk -F[ '{print $2}' | awk -F] '{print $2 }' | sort | uniq | xargs fuser -f | xargs ps -lFp
./tmp/output:
F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD
0 R 1000 14310 14275 23 80 0 - 1072 - 748 1 22:19 pts/2 00:00:06 dd if /dev/zero of ./output bs 1024 count 10000000