C'è un modo standard per diff du uscite per rilevare in cui l'utilizzo dello spazio su disco è cresciuta più

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

  •  20-09-2019
  •  | 
  •  

Domanda

Io lavoro con un piccolo team di sviluppatori in cui condividiamo un file system UNIX per memorizzare grandi quantità di dati in qualche modo. Questo file system ha una quota un po 'proibitivo su di esso in modo da circa una volta al mese, dobbiamo capire dove il nostro spazio libero è andato e vedere cosa possiamo recuperare.

Ovviamente usiamo du una discreta quantità, ma questo è ancora un processo noioso. Ho avuto il pensiero che potremmo essere in grado di mantenere ultimi mesi du uscita intorno e confrontarlo con questi mesi per vedere dove abbiamo avuto la maggior crescita. La mia ipotesi questo piano non è molto originale.

Con questo in mente mi chiedo se ci sono script là fuori che già fanno questo.

Grazie.

È stato utile?

Soluzione

Io davvero non so se c'è un modo standard, ma ho bisogno qualche tempo fa e ho scritto un piccolo script perl per gestire questo. Ecco la parte del mio codice:

#!/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);

Il codice non è molto tollerante verso gli errori così si può regolare.

In sostanza il codice, ottenere le informazioni di utilizzo del disco corrente, confrontare le dimensioni con il tempo lastest correre (salvate in 'du-precedente'), stampare il diverso e salvare le informazioni uso corrente.

Se ti piace, prenderlo.

Spero che questo aiuti.

Altri suggerimenti

ho scritto un programma per fare questo chiamato diff-du . Non posso credere che nessuno aveva già fatto! In ogni caso, ritengo utile e spero che anche.

Che cosa si vuole veramente è il KDirStat .

Per completezza, ho anche trovato du-diff e non si vede è menzionata in nessuna altra risposta. diff-du di Andrew (detto in un'altra risposta) sembra essere più avanzato che questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top