Obtenir des statistiques d'utilisation de l'espace disque par utilisateur

Même si l'espace disque ne coûte plus grand chose, il peut être utile de vérifier l'espace occupé par chaque utilsiteur. Le panel Quotas permet d'avoir un apperçu rapide de l'esapce, mais ne donne pas de détails sur la répartition de l'espace entre les mails, le répertoire personnel et le reste. Voilà un petit script qui permet de générer un CSV avec ces information:

#!/usr/bin/perl -w use Quota; use esmith::AccountsDB; my $a = esmith::AccountsDB->open_ro() || die "Couldn't open AccountsDB\n"; print "Login,Prénom,Nom,Espace total (Mo),Espace peronnel (Mo),Mail (Mo)\n"; foreach my $user ($a->users){ my $name = $user->key; my $f = $user->prop('FirstName'); my $l = $user->prop('LastName'); my $uid = getpwnam($name); my $dev = Quota::getqcarg('/home/e-smith/files'); my ($size, undef, undef, undef, undef, undef, undef, undef) = Quota::query($dev, $uid); my $home = `du -s -B 1M /home/e-smith/files/users/$name/home | awk {'print \$1}'`; my $mail = `du -s -B 1M /home/e-smith/files/users/$name/Maildir | awk {'print \$1}'`; $size = int($size/1024); chomp($home); chomp($mail); print "$name,$f,$l,$size,$home,$mail\n"; }

Ce script affichera sur la sortie standard un CSV avec dans l'ordre: le login, le prénom, le nom, l'espace total occupé, l'espace occupé par le répertoire personnel et l'espace occupé par les mails (le tout en Mo)