tuto:ipasserelle:divers:stat_espace_par_utilisateur

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tuto:ipasserelle:divers:stat_espace_par_utilisateur [15/05/2012 11:57]
dani
tuto:ipasserelle:divers:stat_espace_par_utilisateur [21/09/2015 09:09] (Version actuelle)
dani
Ligne 1: Ligne 1:
 ====== Obtenir des statistiques d'utilisation de l'espace disque par utilisateur ====== ====== 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 utilisateur. Le panel Quotas permet d'avoir un aperçu rapide de l’espace, 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 informations:
  
-Même si l'espace disque ne coûte plus grand chose, il peut être utile de vérifier l'espace occupé par chaque utilsiteurLe 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:+<file perl quota.pl>
  
 +#!/usr/bin/perl -w
  
-<file perl quota.pl>#!/usr/bin/perl -w 
-  
 use Quota; use Quota;
 use esmith::AccountsDB; 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"; }+my $a = esmith::AccountsDB->open_ro() || die "Couldn't open AccountsDB\n"; 
 +print "Login,Prénom,Nom,Espace total (Mo),Espace personnel (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"; 
 +}
 </file> </file>
- 
  
 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) 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)
- 
-{{tag>disque espace occupation quota}} 
  • tuto/ipasserelle/divers/stat_espace_par_utilisateur.1337075852.txt.gz
  • Dernière modification: 15/05/2012 11:57
  • de dani