나는 ncdu를 좋아합니다. 내 모든 서버에도 설치되어 있습니다. 그러나 서버 중 하나가 디스크 용량의 95% 이상을 사용하고 있다는 Grafana의 경고로 인해 아늑한 토요일 밤이 망가졌다고 상상해 보십시오. 당신은 서둘러 워크스테이션으로 가서 브라우저를 작업 프로필로 전환하고 컴퓨터에 SSH 접속을 시도하지만 디스크 사용량이 많은 원인을 알지 못합니다. 당신은 괴로워하고 위로를 주는 파트너에게 의존하고 있지만 ncdu
문제는 훨씬 더 복잡합니다. 서버의 공통 폴더에서는 이러한 파일을 찾을 수 없습니다. 물론, 당신은 내가 이 질문을 쓰는 내내 ncdu /
그것을 목격하기 위해 나를 스캔했습니다./proc
그래서 내 질문은 누군가가 소스 코드를 제공하고 싶다면 ncdu
어떤 위치를 염두에 두어야 하며 디스크 사용량을 검색하는 것이 의미가 없는 곳은 어디입니까?
답변1
의미 없는 위치를 왜
ncdu
스캔합니까 ?
(다른 프로그램처럼) ncdu
원하는 대로 하니까말하다그것은 당신이 하는 일이 아니라 그것을 하는 것입니다생각하다그것은 이루어져야합니다. 전화하면 스캔 과 그 아래의 모든 것을 ncdu /
말 (시도)합니다. 이런 일이 발생합니다 .ncdu
/
/proc
/
누군가 소스 코드를 제공하고 싶다면
ncdu
디스크 사용량을 검색하는 것이 무의미한 위치를 염두에 두겠습니까?
적어도 Linux에서는 완료되었습니다. 보기 --exclude-kernfs
옵션:
--exclude-kernfs
/proc
(Linux에만 해당) (procfs),/sys
(sysfs) 와 같은 Linux 의사 파일 시스템을 제외합니다 .현재 알려진 의사 파일 시스템의 전체 목록은 binfmt, bpf, cgroup, cgroup2, debug, devpts, proc, pstore, security, selinux, sys, Trace입니다.
(원천:man 1 ncdu
.)
하지만ncdu
당신이 원하는 것이 이것이라고 말해야 합니다 :
ncdu --exclude-kernfs /
현실적으로 서버가 "디스크 용량의 95% 이상을 사용"하는 경우 모든 파일 시스템이 아닌 해당 특정 디스크의 파일 시스템, 특히 다른 디스크의 파일 시스템에 관심을 가져야 합니다. 이것이 도움이 되기 때문에 -x
:
-x
파일 시스템 경계를 넘지 마십시오. 즉, 스캔 중인 디렉터리와 동일한 파일 시스템에 있는 파일 및 디렉터리만 계산합니다.
(같은 책.)