공간을 낭비하는 것이 무엇인지 알아낼 수 있습니다.
du -sm * | sort +0nr | head -30
그러나 "/"가 100% 채워지고 /foo, /foo2 등과 같이 마운트 지점이 많다면 어떻게 될까요? 예를 들어 얻는 방법: 마운트 지점이 아닌 "/"의 디렉터리 크기 목록은 무엇입니까? (재귀는 마운트 지점이 아닌가?)
업데이트: 작동하지 않습니다.
cd /; du -sxm * 2>/dev/null | sort +0nr | head -30
예를 들어 "/FOO"(AIX6.1 및 SLES 9.4에서 시도)에 마운트된 디렉토리를 나열하기 때문입니다.
고쳐 쓰다:
du -xm / | sort +0nr | head -30
이것은 AIX에서 작동합니다. 이제 어떻게 될까요? :디
답변1
man du
그 자체로는 다음과 같이 언급됩니다.
-x, --one-file-system
skip directories on different file systems
그래서 뭔가
du -xm * | sort +0nr | head -30
적어도 du
GNU coreutils(내 버전은 8.20)를 사용하고 있다면 괜찮습니다.
이것이 AIX에 적용되는지 확실하지 않습니다(답변을 게시할 때까지 태그를 알지 못했습니다. 죄송합니다).
답변2
공간을 낭비하고 있는 항목을 찾을 수 없다면 다른 장착 지점 아래에 숨겨져 있을 수 있습니다. 예를 들어, /mnt/backup/
설치되지 않은 상태에서 백업을 만든 경우 백업 파일은 해당 파일에 저장되지만 /
나중에 설치하는 한 더 이상 표시되지 않습니다./mnt/backup/
스위치 --one-file-system
도 도움이 되지 않습니다. 문제 없이 깨끗하게 설치해야 합니다.
mkdir /mnt/something
mount /dev/yourroot /mnt/something
그런 다음 , 또는 원하는 도구를 사용하여 파일을 검사합니다 /mnt/something/
.du
xdiskusage
그래도 결과가 나오지 않으면 루트 예약의 미친 값(ext*, tune2fs
)을 확인하거나 일반적인 파일 시스템( fsck
)을 확인하십시오. 일부 파일 시스템 결함으로 인해 사용된/여유 공간 계산이 부정확해질 수 있습니다.
답변3
통과하다-x
du
다른 파일 시스템을 통과하지 않는 옵션입니다. du
루트 디렉터리 자체 에서 호출됩니다 (호출되면 du -x *
루트 디렉터리에 바로 인접한 마운트 지점이 있는 모든 파일 시스템을 탐색합니다).
du -mx / | sort -nr | head -n 30
답변4
마운트 지점이 많거나 파일이 마운트되기 전에 마운트 지점에 기록되었을 수 있는 경우 보조 마운트 지점에 장치를 마운트하는 것이 유용할 수 있습니다. 내가 사용한 대부분의 시스템에서 /mnt
사용 가능하며 사용되지 않습니다 . 다른 사람들은 실제로 /mnt
이동식 미디어를 위한 장착 지점을 사용하고 배치합니다. 두 경우 모두 여기에 마운트 지점을 추가하여 디스크를 마운트할 수 있어야 합니다. 거기에 루트 장치를 마운트하고 du
해당 마운트 지점에 대해 실행하십시오.
삭제되었지만 아직 열려 있는 파일을 확인하려면 마운트 지점 df
과 사용량을 du -k
비교하세요 . 블록 크기가 장치 블록 크기와 일치하지 않으면 일반적으로 불일치가 발생합니다 du
.
로깅 프로그램이 로그 파일을 다시 열지 않고 로그 파일을 회전하면 이러한 문제가 발생할 수 있습니다. 많은 버전에서는 syslog
신호가 전송되면 로그 파일이 다시 열리고 HUP
다른 버전에서는 다시 시작해야 합니다.