Y at-il un moyen standard de diff pour détecter les sorties DU où l'utilisation de l'espace disque a augmenté le plus

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

  •  20-09-2019
  •  | 
  •  

Question

Je travaille avec une petite équipe de développeurs où nous partageons un système de fichiers unix pour stocker des jeux de données quelque peu grandes. Ce système de fichiers a un quota un peu prohibitif sur si environ une fois par mois, nous devons savoir où notre espace libre est allé voir ce que nous pouvons récupérer.

Il est évident que nous utilisons du un montant équitable, mais cela reste un processus fastidieux. J'ai eu l'idée que nous pourrions être en mesure de garder derniers mois du rendement et de comparer à ce mois pour voir où nous avons eu la plus forte croissance. Je pense ce plan est pas très original.

Dans cet esprit, je vous demande s'il y a des scripts là-bas qui font déjà.

Merci.

Était-ce utile?

La solution

Je ne sais vraiment pas s'il y a un moyen standard, mais je en ai besoin il y a quelque temps et je l'ai écrit un petit script Perl pour gérer cela. Voici la partie de mon code:

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

Le code n'est pas très tolérante aux erreurs que vous pouvez le régler.

Fondamentalement, le code, obtenir les informations sur l'utilisation actuelle du disque, comparer la taille avec le temps lastest courir (enregistré dans 'du-précédente), imprimer les différents et enregistrer les informations sur l'utilisation actuelle.

Si vous l'aimez, prenez.

Hope this helps.

Autres conseils

J'ai écrit un programme pour ce faire appelé diff-du . Je ne peux pas croire que personne ne l'avait déjà fait! Quoi qu'il en soit, je trouve utile et j'espère que vous aussi.

Qu'est-ce que vous voulez vraiment vraiment est le génial kdirstat .

Pour être complet, je l'ai aussi trouvé du-diff ne voient pas mentionné dans une autre réponse. diff-du Andrew (mentionné dans une autre réponse) semble être plus avancé que celui-ci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top