패키지는 테스트 시스템에서 압축을 풀고 컴파일됩니다 /tmp/test
.
나는해야한다언제든지 디렉터리의 최대 크기를 가져옵니다.이 모든 단계에서.
현재 나는 치수를 기록하여 스스로를 도울 수 있습니다.
du -sch /tmp/test >> /tmp/size.txt
유통 중. 그러나 이는 매우 지저분하고 부정확한 해결 방법입니다. 컴퓨터가 너무 /tmp/test
바빠서 du
최대 크기를 놓쳤을 수도 있습니다 . 우아한 해결책이 있습니까?
사용 가능한 파일 시스템은 ext 또는 btrfs입니다(도움이 되는 경우).
독자가 요청했습니다사용 예:
Gentoo Linux용 패키지를 준비할 때, 컴파일하는 동안 얼마나 많은 공간이 필요한지 알아야 합니다. 일부 소프트웨어 패키지(예: Firefox, Boost 또는 LibreOffice)의 경우 패키지에 여유 공간이 충분한지 확인하는 것이 중요합니다.
나는 많은 임시 파일을 생성하는 스크립트를 작성했습니다. 폴더 크기를 모니터링하는 것은 흥미로울 것입니다.
고쳐 쓰다:그러는 동안 sysdig
이것이 이 작업에 유망해 보이지만 아직 폴더 크기를 얻지 못했습니다.
답변1
한 가지 가능성은 파일 시스템 이벤트를 모니터링하고 파일 생성 및 삭제 시 일부 로깅 명령을 실행하는 것입니다. 이 접근 방식을 용이하게 할 수 있는 도구가 있습니다.inotify,FSWATCH, 또는Linux 감사 프레임워크. 각 이벤트 후에 전체 디스크 공간을 기록해 보거나 디스크 공간의 변경 사항을 기록한 다음 로그를 사용하여 최대 크기를 계산할 수 있습니다. 예를 들어 다음 수퍼유저 게시물을 참조하세요.
다음 게시물에서는 다른 접근 방식을 제공합니다.
문제의 디렉터리를 자체 파티션에 마운트한 후 다음을 실행하는 것이 좋습니다.iostat그 파티션에. 이를 통해 이 디렉터리에 IO 이벤트를 지속적으로 기록할 수 있습니다.
디스크 IO 모니터링에 대한 자세한 내용은 다음 문서를 참조하세요.
답변2
1분마다 스크립트 예약
*/1 *. *. *. * script path
스크립트는 다음과 같아야합니다
#!/bin/bash
du -sch /tmp/|sed -n '1p' >>outputfile
잠시 후 정렬하여 가장 큰 크기를 얻으십시오.