Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Connaître à peu près la taille d'un répertoire *rapidement* (quitte à sacrifier la précision du résultat)

24 réponses
Avatar
Francois Lafont
Bonjour à tous,

Je sais que la commande « du -sh /mon/rep/ » va me donner la taille de
l'ensemble du contenu de /mon/rep/. Mais quand le répertoire est gros,
la commande est longue.

En effet, dans une partition saturée (avec plein de répertoires
partout), j'aimerais bien arriver à cibler rapidement le
(sous-)répertoire anormalement gros (s'il existe) dans la gigantesque
forêt des répertoires et une commande comme « du » est hélas assez
longue à exécuter si bien que la recherche prend du temps.

Bref, ma question est : existe-t-il une commande donnant rapidement la
taille d'un répertoire même quand il est gros quitte à sacrifier un peu
(beaucoup) de précision. Et ce qui motive ma question c'est d'avoir un
outil pour arriver rapidement à cibler le (sous-)répertoire anormalement
gros dans un /home saturé (par exemple).

Question annexe : pourquoi est-ce que la commande « df -h », elle, va me
donner la taille de mon /home en une fraction de seconde, sachant
qu'après tout /home est un répertoire et qu'avec « du -sh /home » je
suis sûr que l'exécution prendra des plombes.

Merci d'avance.

--
François Lafont

10 réponses

1 2 3
Avatar
Francois Lafont
Le 12/04/2012 20:54, Nicolas George a écrit :

Si je posais la question, c'est parce qu'il m'est arrivé à plusieurs
reprises, sur des serveurs (d'établissements scolaires) différents, de
chercher des gros fichiers/répertoires dans des /home saturé.



Si c'est en tant qu'administrateur, tu devrais avoir des crontab qui te font
le boulot régulièrement.



Oui, je vois. D'ailleurs en soi, l'élaboration d'un tel crontab
m'intéressait. J'imagine un script qui teste tous les soirs le taux
d'occupation d'une partition et qui, si ce taux est « trop » élevé,
commence à lancer certaines recherches (un truc dans le genre en tout cas).

Mais l'occurrence mes recherches dans des /homes saturées de serveurs ne
sont pas faite en tant qu'administrateur, mais plutôt en tant que
le-gars-sympa-qui-vient-donner-coup-de-main-à-l-arrache (on peut enlever
le « sympa » ;-)). D'ailleurs, dans mon secteur (l'éducation nationale,
le secondaire en ce qui me concerne), un administrateur (au sens une
personne qui est un petit peu rémunérée pour s'occuper d'un serveur), ça
n'existe pas vraiment. Mais ça c'est une autre histoire... :-)

--
François Lafont
Avatar
Fabien LE LEZ
On Thu, 12 Apr 2012 20:57:44 +0200, "denis.paris"
:

Si c'est pour repérer des gros fichiers "find" est plus adapté, ama.



Si on s'intéresse aux fichiers individuels, "du -a|sort -n" me paraît
tout à fait adapté.

Comment ferais-tu avec "find" ?
Avatar
denis.paris
Le 12/04/2012 22:15, Fabien LE LEZ a écrit :
On Thu, 12 Apr 2012 20:57:44 +0200, "denis.paris"
:

Si c'est pour repérer des gros fichiers "find" est plus adapté, ama.



Si on s'intéresse aux fichiers individuels, "du -a|sort -n" me paraît
tout à fait adapté.

Comment ferais-tu avec "find" ?





find -size ?
Avatar
Nicolas George
"denis.paris" , dans le message <4f874f70$0$6469$,
a écrit :
find -size ?



La taille et la place occupée ne sont pas la même chose.
Avatar
Fabien LE LEZ
On Thu, 12 Apr 2012 23:55:59 +0200, "denis.paris"
:

find -size ?



Mais pour le coup, tu es obligé de définir une taille-seuil, et donc
tâtonner pour trouver la bonne.
Avatar
LENHOF Jean-Yves
Le 12/04/2012 20:47, Francois Lafont a écrit :
Le 12/04/2012 20:34, Fabien LE LEZ a écrit :

Je ne comprends pas bien le problème.
Si ton disque est saturé aujourd'hui, lance "du|sort -n" ce soir, va
te coucher, et tu auras tous les résultats demain matin.



Oui, absolument. C'est le genre de commande que je lancerais même dans
une « console screen ». Mais bon, je dois être un impatient, c'est pour
ça que je posais la question. :-)

Si tu dois faire cette opération souvent, il y a quelque chose de
louche. Probablement le même répertoire qui se remplit en permanence à
cause d'un bug.



On est d'accord.
Si je posais la question, c'est parce qu'il m'est arrivé à plusieurs
reprises, sur des serveurs (d'établissements scolaires) différents, de
chercher des gros fichiers/répertoires dans des /home saturé.



Du coup, tu ne devrais pas mettre en place des quotas ?

Cdlt,

JYL
Avatar
Lucas Levrel
Le 12 avril 2012, Francois Lafont a écrit :

Question annexe : pourquoi est-ce que la commande « df -h », elle, va me
donner la taille de mon /home en une fraction de seconde, sachant
qu'après tout /home est un répertoire



Bonjour,

Je ne sais pas si c'est clair pour toi, et ça n'a pas vraiment été dit
dans la discussion : le système dont tu parles a au moins deux partitions,
disons /dev/sda1 et /dev/sda2, chacune contenant un filesystem. Par
exemple sda1 contient les répertoires bin/ etc/ home/ usr/, où home/ est
vide ; sda2 contient toto/ machin/ francois/. sda1 est monté sur /, et
sda2 est monté sur /home/. Le filesystem de sda2 connaît sa taille, la
proportion occupée, etc., qui est indépendante de son point de montage
(qu'il ne connaît pas d'ailleurs, car tu peux le monter où tu veux !).

--
LL
Avatar
Francois Lafont
Salut,

Le 13/04/2012 10:46, Lucas Levrel a écrit :

Je ne sais pas si c'est clair pour toi, et ça n'a pas vraiment été dit
dans la discussion : le système dont tu parles a au moins deux
partitions, disons /dev/sda1 et /dev/sda2, chacune contenant un
filesystem. Par exemple sda1 contient les répertoires bin/ etc/ home/
usr/, où home/ est vide ; sda2 contient toto/ machin/ francois/. sda1
est monté sur /, et sda2 est monté sur /home/. Le filesystem de sda2
connaît sa taille, la proportion occupée, etc., qui est indépendante de
son point de montage (qu'il ne connaît pas d'ailleurs, car tu peux le
monter où tu veux !).



Effectivement, je ne voyais pas tout à fait le choses ainsi (notamment
le fait qu'une partition ignorait son point de montage). Merci pour ces
précisions.


--
François Lafont
Avatar
Yannick Patois
On 04/13/2012 06:58 AM, LENHOF Jean-Yves wrote:
Le 12/04/2012 20:47, Francois Lafont a écrit :
Le 12/04/2012 20:34, Fabien LE LEZ a écrit :
Je ne comprends pas bien le problème.
Si ton disque est saturé aujourd'hui, lance "du|sort -n" ce soir, va
te coucher, et tu auras tous les résultats demain matin.


Oui, absolument. C'est le genre de commande que je lancerais même dans
une « console screen ». Mais bon, je dois être un impatient, c'est pour
ça que je posais la question. :-)
Si tu dois faire cette opération souvent, il y a quelque chose de
louche. Probablement le même répertoire qui se remplit en permanence à
cause d'un bug.


On est d'accord.
Si je posais la question, c'est parce qu'il m'est arrivé à plusieurs
reprises, sur des serveurs (d'établissements scolaires) différents, de
chercher des gros fichiers/répertoires dans des /home saturé.


Du coup, tu ne devrais pas mettre en place des quotas ?




D'autant que si tu actives les quotas, même sans mettre de limites, la
commande quota -v <user> retourne instantanément le volume occupé par
l'utilisateur sur la partition.

Yannick

--
_/ Yannick Patois ___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: | |
| http://www.jean-luc-melenchon.fr/ Le blog de campagne de Mélenchon |
Avatar
Doug713705
Le 12-04-2012, Francois Lafont nous expliquait dans
fr.comp.os.linux.configuration :

df donne l'état de remplissage du filesystem sur lequel se trouve le
répertoire passé en argument. Ça, c'est un truc que les filesystems gardent
usuellement dans une variable, donc ils peuvent donner la réponse
immédiatement.



Ok, le filesystem maintient à jour une variable qui correspond à la
taille du répertoire « associé » (ça fait partie de son job) mais il ne
le fait que pour ce répertoire là. Dommage.



Et si tu montais ton répertoire sur une autre branche de ton FS ?

mount -B /mon/gros/rep /mon/montage

--
Doug - Linux user #307925 - Slackware64 roulaize ;-)
http://usenet-fr.chainon-marquant.org
http://newsportal.chainon-marquant.org
http://news.chainon-marquant.org
1 2 3