있는 표준 방법을 비교 du 출력을 감지하는 디스크 공간 사용량이 가장 성장

StackOverflow https://stackoverflow.com/questions/1533593

  •  20-09-2019
  •  | 
  •  

문제

나의 작은 팀이 개발자는 우리가 공유하는 유닉스 파일 시스템을 저장하는 다소 큰 데이터 집합입니다.이 파일 시스템이 금지한 할당량은 그것에 대해 그렇게 한 달에 한 번 우리는 그 곳에 우리의 여유 공간이 사라고 우리가 무엇을 복구 할 수 있습니다.

분명히 우리가 사용하는 du 공정한 금액 하지만 이것은 여전히 지루한 과정입니다.나는 생각할 수 있습을 유지할 수 있는 마지막 개월 뒤 출력하고 그것을 비교 이 개월 곳에 우리의 가장 성장이다.나의 추측한 이 계획은 원래 있습니다.

이 마음으로 내가 요청이 있는 경우 스크립트가 있는 이미니다.

감사합니다.

도움이 되었습니까?

해결책

나는 정말로 알지 못하는 경우가 있는 표준 방법 그러나 나는 그것을 필요 언젠가 전에 내가 쓴 작은 perl 스크립트를 처리하는 것.여기에는 이 부분의 내 코드:

#!/usr/bin/perl

$FileName = "du-previous";
$Location = ">";
$Sizes;

# Current +++++++++++++++++++++++++++++
$Current = `du "$Location"`;
open my $CurrentFile, '<', \$Current;
while (<$CurrentFile>) {
    chomp;
    if (/^([0-9]+)[ \t]+(.*)$/) {
        $Sizes{$2} = $1;
    }
}
close($CurrentFile);

# Previous ++++++++++++++++++++++++++++
open(FILE, $FileName);
while (<FILE>) {
    chomp;
    if (/^([0-9]+)[ \t]+(.*)$/) {
        my $Size = $Sizes{$2};
        $Sizes{$2} = $Size - $1;
    }
}
close(FILE);

# Show result +++++++++++++++++++++++++
SHOW: while (($key, $value) = each(%Sizes)) {
    if ($value == 0) {
        next SHOW;
    }

    printf("%-10d %s\n", $value, $key);
}
close(FILE);

#Save Current +++++++++++++++++++++++++
open my $CurrentFile, '<', \$Current;
open(FILE, ">$FileName");
while (<$CurrentFile>) {
    chomp;
    print FILE $_."\n";
}
close($CurrentFile);
close(FILE);

코드입니다 아주 오류가 허용하도록 조정할 수 있습니다.

기본적으로 코드를 얻을,현재는 디스크 사용 정보를,비교합한 크기와 최신 시간에 그것은행(구에 뒤 이전'),인쇄는 다른 저장 현재 사용량 정보입니다.

당신이 그것을 좋아한다면,그것을 받아들이십시오.

이게 도움이 되었으면 좋겠습니다.

다른 팁

나는 할 수 있는 프로그램이라고 diff-du.내가 믿을 수 없어도 이미 수행!어쨌든,내가 그것을 발견 유용하고 나는 당신은 너무 바랍니다.

당신이 정말로 정말로 원하는 멋진 kdirstat.

에 대한 완전성,나 또한 발견 du-diff 과 보이지 않에 언급된 어떤 다른 대답이다.앤드류의 차이-du(에서 언급한 또 다른 대답이)더 많은 것 같 고급이 하나입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top