있는 표준 방법을 비교 du 출력을 감지하는 디스크 공간 사용량이 가장 성장
문제
나의 작은 팀이 개발자는 우리가 공유하는 유닉스 파일 시스템을 저장하는 다소 큰 데이터 집합입니다.이 파일 시스템이 금지한 할당량은 그것에 대해 그렇게 한 달에 한 번 우리는 그 곳에 우리의 여유 공간이 사라고 우리가 무엇을 복구 할 수 있습니다.
분명히 우리가 사용하는 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);
코드입니다 아주 오류가 허용하도록 조정할 수 있습니다.
기본적으로 코드를 얻을,현재는 디스크 사용 정보를,비교합한 크기와 최신 시간에 그것은행(구에 뒤 이전'),인쇄는 다른 저장 현재 사용량 정보입니다.
당신이 그것을 좋아한다면,그것을 받아들이십시오.
이게 도움이 되었으면 좋겠습니다.
제휴하지 않습니다 StackOverflow