시간 경과에 따른 디렉터리 공간 변경을 추적하는 Linux 도구

시간 경과에 따른 디렉터리 공간 변경을 추적하는 Linux 도구

예를 들어, 전체 파일 시스템뿐만 아니라 시간 경과에 따라 디스크 공간을 추적하여 역사적으로 어떤 디렉터리 트리가 늘어나고 줄어들었는지 쉽게 확인할 수 있는 일반적인 Linux 도구가 있습니까? 이 문제는 캐시 및 tmp 파일, 로그 등을 정기적으로 정리하는데도 불구하고 항상 여유 공간이 0에 도달하는 것처럼 보이는 서버에서 발생합니다. 나는 낮은 워터마크에 도달했을 때 특정 크기/유형 이상의 오래된 파일을 찾기 위해 정기적 및 예약된 작업 dfdu같은 도구를 사용했습니다.lsofat

Debian/Ubuntu 패키지를 선호합니다.

답변1

이와 같은 도구를 만드는 데 문제가 될 수 있는 몇 가지 사항이 있습니다.

  1. 커널은 디렉터리 또는 파일별 파일 크기 기록(메모리 사용량, I/O 활동 또는 CPU 시간과 마찬가지로)을 유지하지 않으므로 기록된 모든 내용은 사용자 공간에 있어야 합니다.
  2. inotify 등을 사용하여 무언가를 작성하더라도 바쁜 서버에서는 파일이 변경될 때마다 "du -s" 출력을 기록하는 사용자 공간 데몬의 오버헤드가 상당할 수 있습니다. 덜 바쁜 서버에서는 아마도 이 문제가 발생하지 않을 것입니다. 따라서 도구를 관리하는 데 드는 비용을 감당할 수 없는 사람들에게만 도구가 유용한 상황이 발생합니다.
  3. Zabbix 또는 Nagios와 같은 네트워크 모니터링 데몬에는 이와 관련하여 대부분의 관리자 요구 사항을 충족하는 일부 원시 디스크 사용 모니터링(전체 파일 시스템) 및 기록이 포함되어 있습니다. 그 이상의 필요성은 일반적으로 문제의 파일 시스템에 들어간 위치를 중단/수정하고 무엇이 공간을 차지하고 있는지 확인하는 것입니다(가능한 문제에 대한 사전 경고를 위해 네트워크 모니터링을 사용하십시오).
  4. 이에 대해 정말로 알아야 하고, 해당 문제가 다시 발생할 때 이를 알려주는 활성 경고를 기다리는 것이(확인할 수 있도록) 선택 사항이 아닌 경우 결국에는 관심 있는 디렉터리를 모니터링하는 스크립트를 작성할 수 있습니다. (기본적으로 "find /path/to/dir -type d -exec du -sh {} \;"의 출력을 어떻게든 쉽게 볼 수 있도록 기록합니다.)

따라서 이를 수행하기 위한 사용자 공간 도구를 실제로 만들 필요가 없습니다. 제대로 수행하기 어렵고 기존 솔루션을 사용하면 이상에 매우 가깝기 때문입니다.

짧은 답변:나는 그러한 도구를 알지 못하지만 그것이 존재하지 않는다는 것이 합리적입니다.

관련 정보