Rechercher : dans
Par :

[Linux]Gestion de quota par répertoire

Dernière réponse le 29 jun 2007 à 17:27:43 Manov, le 2 fév 2007 à 14:25:14 
 Signaler ce message aux modérateurs

Bonjour, je souhaiterai en quelque sorte fixer une taille limite à un répertoire. C'est à dire le limité à 100mo par exemple.
Je sais qu'il est possible de faire ceci par utilisateur ou bien par groupe mais je ne suis pas sur que ca soit possible pour un répertoire bien précis.

Merci d'avance pour vos réponses et sur la façon de procédé si vous avez la moindre idée ;)

Manov

Meilleures réponses pour « [Linux]Gestion de quota par répertoire » dans :
Linux - Gestion des utilisateurs Voir Premier pas de l'administrateur Lorsque diverses personnes ont accès à un système, il est nécessaire que l'administrateur système gère les utilisateurs. Pour ceci, les commandes usuelles et les fichiers à configurer doivent être connus. Les...
Linux - Gestion des utilisateurs Voir Premier pas de l'administrateur Lorsque diverses personnes ont accès à un système, il est nécessaire que l'administrateur système gère les utilisateurs. Pour ceci, les commandes usuelles et les fichiers à configurer doivent être connus. Les...
[Linux] Problèmes de son VoirLa gestion du son sous GNU/Linux est assez complexe et peut générer pas mal d'erreurs. Cet article n'a pas vocation d'expliquer dans le détail comment Linux gère le son, mais vous trouverez ici des solutions à certains problèmes courants. Le...
Gestionnaires de fenêtres X11 VoirGestionnaires de fenêtres AfterStep Blackbox FluxBox FVWM IceWM (Ice Window Manager) Metacity OpenBox Window Maker Sur le réseau Contrairement à certaines solutions propriétaires (Windows et Mac), GNU/Linux offre nativement...
[Linux] Débuter sous Linux VoirDÉBUTER SOUS LINUX Qu'est-ce que Linux ? Si vous venez de Windows I - LES LIVE-CDS I-1 Quelles distributions choisir ? I-2 Utilisation II - INSTALLER LINUX II-1 Partitionner son disque dur II-2 Multiboot Windows/Linux II-3 Quelles...
Télécharger Filezilla Server VoirFileZilla Server est un serveur FTP pour Windows développé en open source. Il comporte de nombreuses fonctionnalités telles que le support de SSL, la possibilité de reprendre des téléchargements annulés, la gestion des répertoires, ... Mise à...
La gestion de la mémoire VoirDescription de la mémoire La mémoire physique sur un système se divise en deux catégories : la mémoire vive : composée de circuit intégrés, donc très rapide la mémoire de masse : composée de supports magnétiques (disque dur, bandes...
Linux - L'arborescence des fichiers VoirLa hiérarchie des fichiers sous Linux Pour assurer la compatibilité et la portabilité, les systèmes Linux respectent l'unique norme FHS (File Hierarchy Standard). La hiérarchie de base est la suivante : /la racine, elle contient les...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...

1

webmister, le 28 jun 2007 à 22:51:24

Salut
maintenant nous sommes deux à chercher sauf que moi j'ai peux etre une piste jai entendu dire sur un forum que l'on pouvez le faire en .htaccess
mais j'en sais pas plus
si vous avez d'autre piste je suis preneur
Cordialement

Répondre à webmister

2

dubcek, le 29 jun 2007 à 15:10:06
  • +1

Hi
Possibilié: en créant un file-system virtuel dans un fichier de 100 Mb : http://souptonuts.sourceforge.net/quota_tutorial.html

Répondre à dubcek

3

webmister, le 29 jun 2007 à 15:44:39

Merci pour cette réponse rapide
mais le probleme c'est que je suis en mutualisé et je ne peux pas utiliser de commande serveur enfin je pense...
jai déjà reussis cette nuit à faire une fonction pour calculer la taille d'un repertoire et en fixer une limite mais je ne vois pas comment interdire l'update si cette limiter est atteinte

je ne sais pas si j'ai le droit de metre cette fonction ici donc si vous vouilez la voir je peux vous l'envoyer par email

en tous cas merci de votre aide

Répondre à webmister

4

dubcek, le 29 jun 2007 à 15:55:25

Effectivement, une fois les 100 Mb atteints, que faut-il faire ?
Ejecter les utilisateurs ?
Tuer les tâches qui écrivent dans le répértoire ?
Changer les droits sur le répertoire en read-only ?
Je ne vois pas tellement d'autres méthodes.

Répondre à dubcek

5

webmister, le 29 jun 2007 à 16:05:27

Le top sa sera un message d'erreur qui s'affiche en disant que le fichier n'as pas pu etre transferer car le quota à été atteint

veut tu que je te montre mon script qui calcule et qui determine le quota ?

Répondre à webmister

6

dubcek, le 29 jun 2007 à 16:11:20

Affiche le ici.
Mais après le message d'erreur, le fichier va continuer à croitre si la tâche n'est pas tuée ...

Répondre à dubcek

7

 webmister, le 29 jun 2007 à 17:27:43

Donc enfaite il faudrais tuer les tâches qui écrivent dans le répértoire une fois que le quota est plein


voici le code :


function DirSize($path, $result= array()){
$sum= 0;
if(!is_dir($path) || !is_readable($path)) {
return 0;
} else {
$fd = dir($path);
while($file = $fd->read()) {
if(($file != ".") && ($file != "..")) {
if(@is_dir("$path/$file/")) {
$result= DirSize("$path/$file", $result);
} else {
$sum+= filesize("$path/$file");
}
}
}
$fd->close();
$result["$path/$file"]= $sum;
return $result;
}
}
//chez free le parametre precision de round n'est pas supporté
function free_round($val2round, $precision) {
// 3.14.15.926536, 2 314/100= 3.14
// 196204, -3 196/0.001= 196000
return(round($val2round*pow(10, $precision))/pow(10, $precision));
}
$quota_max= 100*1000*1000; // 100Mo
// pour scanner depuis le dossier en cours
$quota_root= getcwd();
// pour scanner depuis la racine
//$quota_root= $_SERVER['DOCUMENT_ROOT'];
$quota_used= DirSize($quota_root);
$quota_unite= 'Mo';
$quota_Tunite= array('Octets'=>1, 'Ko'=>1000, 'Mo'=>1000000); // calcul en Mo.
echo 'le dossier '.basename($quota_root).
' occupe '.free_round(array_sum($quota_used)*100/$quota_max, 2).' %
des '.$quota_max/$quota_Tunite[$quota_unite].' '.$quota_unite.' alloués<br />';
echo 'les '.free_round(array_sum($quota_used)/$quota_Tunite[$quota_unite], 2).' '.$quota_unite.' utilisés sont répartis comme tel :<br />';
foreach($quota_used as $key=>$val) {
echo free_round($val/$quota_Tunite[$quota_unite], 2).' '.$quota_unite.' dans '.str_replace($quota_root, '', $key).'<br />';
}


Encore merci pour ton aide

Répondre à webmister
Collection CommentÇaMarche.net