예를 들어, 전체 파일 시스템뿐만 아니라 시간 경과에 따라 디스크 공간을 추적하여 역사적으로 어떤 디렉터리 트리가 늘어나고 줄어들었는지 쉽게 확인할 수 있는 일반적인 Linux 도구가 있습니까? 이 문제는 캐시 및 tmp 파일, 로그 등을 정기적으로 정리하는데도 불구하고 항상 여유 공간이 0에 도달하는 것처럼 보이는 서버에서 발생합니다. 나는 낮은 워터마크에 도달했을 때 특정 크기/유형 이상의 오래된 파일을 찾기 위해 정기적 및 예약된 작업 df
과 du
같은 도구를 사용했습니다.lsof
at
Debian/Ubuntu 패키지를 선호합니다.
답변1
이와 같은 도구를 만드는 데 문제가 될 수 있는 몇 가지 사항이 있습니다.
- 커널은 디렉터리 또는 파일별 파일 크기 기록(메모리 사용량, I/O 활동 또는 CPU 시간과 마찬가지로)을 유지하지 않으므로 기록된 모든 내용은 사용자 공간에 있어야 합니다.
- inotify 등을 사용하여 무언가를 작성하더라도 바쁜 서버에서는 파일이 변경될 때마다 "du -s" 출력을 기록하는 사용자 공간 데몬의 오버헤드가 상당할 수 있습니다. 덜 바쁜 서버에서는 아마도 이 문제가 발생하지 않을 것입니다. 따라서 도구를 관리하는 데 드는 비용을 감당할 수 없는 사람들에게만 도구가 유용한 상황이 발생합니다.
- Zabbix 또는 Nagios와 같은 네트워크 모니터링 데몬에는 이와 관련하여 대부분의 관리자 요구 사항을 충족하는 일부 원시 디스크 사용 모니터링(전체 파일 시스템) 및 기록이 포함되어 있습니다. 그 이상의 필요성은 일반적으로 문제의 파일 시스템에 들어간 위치를 중단/수정하고 무엇이 공간을 차지하고 있는지 확인하는 것입니다(가능한 문제에 대한 사전 경고를 위해 네트워크 모니터링을 사용하십시오).
- 이에 대해 정말로 알아야 하고, 해당 문제가 다시 발생할 때 이를 알려주는 활성 경고를 기다리는 것이(확인할 수 있도록) 선택 사항이 아닌 경우 결국에는 관심 있는 디렉터리를 모니터링하는 스크립트를 작성할 수 있습니다. (기본적으로 "find /path/to/dir -type d -exec du -sh {} \;"의 출력을 어떻게든 쉽게 볼 수 있도록 기록합니다.)
따라서 이를 수행하기 위한 사용자 공간 도구를 실제로 만들 필요가 없습니다. 제대로 수행하기 어렵고 기존 솔루션을 사용하면 이상에 매우 가깝기 때문입니다.
짧은 답변:나는 그러한 도구를 알지 못하지만 그것이 존재하지 않는다는 것이 합리적입니다.