2012-05-18 3 views
3

나는이 명령을 실행하여 내 Linux 시스템에서 디스크 공간 사용량을 확인했습니다.어떤 프로세스가 Linux에서 디스크 공간을 소유하고 있는지 표시하는 방법

Filesystem Size Used Avail Use% Mounted on /dev/mapper/foovg-foo 326G 202G 108G 66% /export/data/foo

du -sk * | awk '{sum += $1}END{print sum}' 132,161,064 ~ 1백26기가바이트

그래서, 202G - : 126 = 76G 차이.

76G 디스크 공간은 어디에 있습니까? 파일 핸들을 보유하고있는 프로세스를 어떻게 알 수 있습니까?
삭제 된 파일 이름은 무엇입니까?

리눅스에서 /proc/pid/fd/ 아래의 파일 설명자는 실제 파일에 대한 소프트 링크입니다.

+1

"du -k | sort -n"은 어디에서 찾을 지에 대한 힌트를 제공합니다. – Fredrik

+0

Unix 및 Linux 스택 교환 http://unix.stackexchange.com/을 원할 수도 있습니다. – flumpb

답변

2

그 원인이 무엇이든 상관없이 lsof을 사용하여 삭제 된 파일을 보유하고있는 프로세스를 확인할 수 있습니다. 이 같은 것이 도움이 될 수 있습니다.

lsof | grep '(deleted)$' | sort -rnk 7 

즉, 모든 삭제 된 파일을 잡고 크기에 따라 내림차순으로 정렬하십시오.

2

du 명령에 * 와일드 카드를 사용하고 있으므로 .으로 시작하는 디렉토리는 선택되지 않습니다. 예를 들어, .nfs 개의 파일이 공간을 차지할 수 있으며 명령은 실행되지 않습니다.

awk을 사용하는 대신 -c 옵션을 사용하여 du에 합계를 산출하도록 지시 할 수도 있습니다.

대신 다음 명령을 사용하여 더 많은 공간을 사용하는 한 당신이 찾을 수 있도록

# cd /export/data/foo 
# du -ch . 

이 명령은 또한 당신에게 모든 하위 디렉토리의 크기를 줄 것이다.