"/"에서 공간을 낭비하는 것이 무엇인지 확인하는 방법은 무엇입니까?

"/"에서 공간을 낭비하는 것이 무엇인지 확인하는 방법은 무엇입니까?

공간을 낭비하는 것이 무엇인지 알아낼 수 있습니다.

 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

적어도 duGNU coreutils(내 버전은 8.20)를 사용하고 있다면 괜찮습니다.

이것이 AIX에 적용되는지 확실하지 않습니다(답변을 게시할 때까지 태그를 알지 못했습니다. 죄송합니다).

답변2

공간을 낭비하고 있는 항목을 찾을 수 없다면 다른 장착 지점 아래에 숨겨져 있을 수 있습니다. 예를 들어, /mnt/backup/설치되지 않은 상태에서 백업을 만든 경우 백업 파일은 해당 파일에 저장되지만 /나중에 설치하는 한 더 이상 표시되지 않습니다./mnt/backup/

스위치 --one-file-system도 도움이 되지 않습니다. 문제 없이 깨끗하게 설치해야 합니다.

mkdir /mnt/something
mount /dev/yourroot /mnt/something

그런 다음 , 또는 원하는 도구를 사용하여 파일을 검사합니다 /mnt/something/.duxdiskusage

그래도 결과가 나오지 않으면 루트 예약의 미친 값(ext*, tune2fs)을 확인하거나 일반적인 파일 시스템( fsck)을 확인하십시오. 일부 파일 시스템 결함으로 인해 사용된/여유 공간 계산이 부정확해질 수 있습니다.

답변3

통과하다-xdu다른 파일 시스템을 통과하지 않는 옵션입니다. du루트 디렉터리 자체 에서 호출됩니다 (호출되면 du -x *루트 디렉터리에 바로 인접한 마운트 지점이 있는 모든 파일 시스템을 탐색합니다).

du -mx / | sort -nr | head -n 30

답변4

마운트 지점이 많거나 파일이 마운트되기 전에 마운트 지점에 기록되었을 수 있는 경우 보조 마운트 지점에 장치를 마운트하는 것이 유용할 수 있습니다. 내가 사용한 대부분의 시스템에서 /mnt사용 가능하며 사용되지 않습니다 . 다른 사람들은 실제로 /mnt이동식 미디어를 위한 장착 지점을 사용하고 배치합니다. 두 경우 모두 여기에 마운트 지점을 추가하여 디스크를 마운트할 수 있어야 합니다. 거기에 루트 장치를 마운트하고 du해당 마운트 지점에 대해 실행하십시오.

삭제되었지만 아직 열려 있는 파일을 확인하려면 마운트 지점 df과 사용량을 du -k비교하세요 . 블록 크기가 장치 블록 크기와 일치하지 않으면 일반적으로 불일치가 발생합니다 du.

로깅 프로그램이 로그 파일을 다시 열지 않고 로그 파일을 회전하면 이러한 문제가 발생할 수 있습니다. 많은 버전에서는 syslog신호가 전송되면 로그 파일이 다시 열리고 HUP다른 버전에서는 다시 시작해야 합니다.

관련 정보