IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Identifier les consommations stockage de tous les répertoires mais avec exclusions


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Points : 43
    Points
    43
    Par défaut Identifier les consommations stockage de tous les répertoires mais avec exclusions
    Bonjour,

    Je me permets de poster ici car j'ai un soucis pour identifier un répertoire qui grossit assez rapidement sur une machine debian.
    La commande que je passe et qui fonctionne bien pour identifier le stockage consommé pour tous les répertoires :

    en me plaçant dans / :
    Le soucis sur mon serveur actuel est qu'il existe un montage NFS en place sur /home/user vers un serveur avec 52To de stockage et que la commande ci-dessus se bloque sur l'analyse de /home/user
    Je souhaiterais donc remonter les mêmes infos pour tous mes répertoires de / sauf /home

    Je vois que l'option -X ne permet que d'exclure des fichiers et pas des répertoires.
    Quelle serait les possibilités de remontée facile des infos de stockage en "human readable" ?

    merci par avance pour votre aide

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Le répertoire /home est bien exclus.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    bonjour et merci pour la réponse

    je me plaçais dans / avant de lancer ma commande initiale ce qui listait pour tous les répertoires directement dans / leur nom + leur stockage
    j'ai tenté votre commande mais ça mouline sans renvoyer aucun résultat donc à mon avis celà tente d'analyser /home tout de même

    ma commande on voyait l'avancée à l'écran car on avait le stockage des premiers répertoires avant /home
    arrivé au niveau de /home c'est bloqué

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ du -sh ~
    54G     /home/flodelarab
    $ du -sh --exclude ~/Documents/ ~
    54G     /home/flodelarab
    $ du -sh --exclude ~/Documents ~
    50G     /home/flodelarab
    $ du -sh ~/Documents
    3,9G    /home/flodelarab/Documents
    As-tu laissé l'oblique à la fin du répertoire ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    je n'ai pas compris l'histoire des obliques

    je réalise les manipulation en ssh et sous le compte root en ssh

    commande 1 : cd /
    commande 2 : du -hs *

    dans votre example d'hier il n'y avait pas de ~ et je n'en voit pas à l'écran

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Citation Envoyé par yakalelo57 Voir le message
    je n'ai pas compris l'histoire des obliques
    Regarde mieux l'exemple. Les lignes sont différentes. Il y en a une qui donne 54Go mais dont le motif finit par une oblique /. L'autre donne 50Go, mais sans oblique.

    Citation Envoyé par yakalelo57 Voir le message
    dans votre example d'hier il n'y avait pas de ~ et je n'en voit pas à l'écran
    Le tilde ~ est un raccourci pour le $HOME de l'utilisateur, par exemple /home/flodelarab.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    j'avais mal compris

    en effet, sans le / ça fonctionne au niveau de la commande mais malheureusement pas pour mon besoin précis...
    J'ai testé dans une structure de test /temporaire qui comprend des sous répertoires et des fichiers et testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    du -sh /temporaire/mysql/* --exclude /temporaire/test/dossier1
    en effet là j'ai bien 8 résultats (6 fichiers et 2 dossiers) avec leur taille et celui que j'ai exclu n'apparait pas dans les résultats. (avec un : final derrière dossier1 la commande ne prend pas en compte l'exclusion)
    Cependant en tentant de l'appliquer sur / ce qui m'intéresse et d'exclure /home celà bloque tout de même dessus car je suppose que la commande ne bloque pas l'analyse en arrière plan du répertoire...

    Y aurait-il une solution avec une autre commande ?
    le noeud du problème c'est que j'ai monté un stockage NFS de 52To dans /home/...../....

    du coup si la commande doit analyser les 46 To consommés la commande va bloquer...

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Peux tu nous montrer ton partitionnement ?

    Ou alors, passe par l'option -x de du, qui permet de rester sur un scan exclusivement sur la même partition, donc ne prend pas en compte les répertoires qui sont montés sur d'autre partition.

    Un exemple qui fait un du -hs sur toutes les partition de type ext4:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    du -hs -x $(df --output=target -t ext4 | tail +2)
    Cordialement.

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 102
    Points : 4 448
    Points
    4 448
    Par défaut
    bonjour
    Citation Envoyé par yakalelo57 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    du -sh /temporaire/mysql/* --exclude /temporaire/test/dossier1
    pas logique ton exclusion
    analyser : /temporaire/mysql/
    exclure : /temporaire/test/ qui n'est même pas dans /temporaire/mysql/ ...

    le noeud du problème c'est que j'ai monté un stockage NFS de 52To dans /home/...../....
    pas compris pourquoi tu ne peux l'exclure, mais sinon il est très simple de démonter ton répertoire (umount "ton repertoire") avant analyse

    ----

    Une alternative, en mode graphique
    $moi= ( !== ) ? : ;

  10. #10
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Peux tu nous montrer ton partitionnement ?

    Ou alors, passe par l'option -x de du, qui permet de rester sur un scan exclusivement sur la même partition, donc ne prend pas en compte les répertoires qui sont montés sur d'autre partition.

    Un exemple qui fait un du -hs sur toutes les partition de type ext4:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    du -hs -x $(df --output=target -t ext4 | tail +2)
    bonjour,

    je vous confirme que simplement du -hs -x * a bien fonctionné pour moi.

    @papajoker :
    J'avais donné un exemple mais en fait je partais de / et voulais exclure /home/user1 mais pas le reste des répertoires de /home
    De plus, je sais bien que démonter la ressource avant de passer ma commande initiale aurait permis à la commande de fonctionner directement, mais c'est un serveur en production qui a besoin de cette ressource montée en quasi permanence donc j'ai voulu éviter de causer un soucis.

  11. #11
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    je viens de tester pour notre besoin la commande, mais je demeure perplexe quant aux résultats.
    En fait, nous avons une requete MySQL sur une appli qui occasionne une consommation important de stockage sur la partition / alors que normalement toute la base et les données sont sur /data (autre partition et même isolée sur un autre disque virtuel).

    - la commande df -h réalisée avant et après exécution de la requete indique que 7Go de stockage sont quasi immédiatement consommés sur /
    - la commande du -hs -x * lancée à la racine (/) me montre bien tous les répertoires que j'y trouve en faisant ls -la (je voulais vérifier les répertoires éventuellement cachés). Mais les résultats en terme de taille de répertoires ne correspondent pas à ce que je vois avec df -h en lançant la commande également avant et après lancement de ma requête.

    Je n'arrive donc pas à trouver le chemin de stockage des 7Go de fichiers générés. C'est un soucis car avec plusieurs requêtes lancées, / est saturé...
    Il me faut donc trouver l'emplacement des fichiers générés (c'était l'objet de mon sujet à la base même si je l'ai orienté autour de la commande "du"

    sauriez-vous m'aider et m'indiquer ce que je fais de travers ?

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par yakalelo57 Voir le message
    Il me faut donc trouver l'emplacement des fichiers générés

    sauriez-vous m'aider et m'indiquer ce que je fais de travers ?
    L'idée la plus immédiate qui me vient est de contrôler /tmp, dossier habituellement utilisé par tous les programmes devant générer du temporaire. Attention car l'étoile n'affiche pas les dossiers cachés. Pour les inclures, il faut mettre ".??*" => du -sh * .??* (le double point d'interrogation permettant d'avoir au-moins deux caractères après le point ce qui exlut donc "." et "..").

    Autre axe de recherche: le find. Il te permet de trouver des fichiers et/ou dossiers selon certains critères. Par exemple l'option "-size +10m" (ce n'est qu'un exemple) te donnera les fichiers (j'inclus dans ce terme aussi les dossiers qui ne sont que des fichiers particuliers) ayant une taille supérieure à 10Mo. L'option "-mmin -10" donnera les fichiers modifiés il y a moins de 10mn. Bref toute une gamme de possibilités (en y incluant le "-type" qui permet de cibler les types de fichiers précis et surtout l'option "-xdev" très pratique ici car elle demande à find de ne pas quitter le point de montage de départ).

    Et bien entendu si le souci vient de MySQL, il te faut passer en revue tous ses paramètres pour checker lequel irait écrire ailleurs que sur /data. Malheureusement je ne connais pas assez ce serveur pour te dire lequel cela peut-être (ça aurait été du Postgres oui j'aurais pu mais Postgres n'en contient qu'un seul qui est "le dossier bdd"). Peut-être en allant voir dans le fichier /etc/init.d/mysql (attention, c'est un nom que j'invente par mimétisme avec le fichier Postgres /etc/init.d/postgres donc à toi d'adapter). Ce fichier /etc/init.d/mysql qui permet de lancer le serveur au démarrage de la machine, s'il est similaire à celui de Postgres, devrait donner certains paramètres dont celui qui écrit là où il ne faut pas. Peut-être aussi regarder quel est le HOME prévu pour mysql et aller voir là bas (dossier "~mysql").
    Et enfin peut-être penser éventuellement à aller poser la question dans le forum MySQL (partie admin s'il y en a une)...

    Citation Envoyé par yakalelo57 Voir le message
    (c'était l'objet de mon sujet à la base même si je l'ai orienté autour de la commande "du"
    Excellent exemple de problème XY. Au lieu de dire dès le départ "j'aimerais trouver qui fout le bordel" tu as pensé ta solution puis tu es venu demander comment la mettre en oeuvre alors que ta solution pensée n'était peut-être pas forcément la plus adaptée.

    PS: j'ai trouvé ce site https://dev.mysql.com/doc/refman/8.0...variables.html qui décrit les variables d'environnement de MySQL et j'ai été particulièrement intéressé par TMPDIR...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/03/2020, 21h00
  2. Cocher toutes les checkbox mais avec envoi de la valeur
    Par guillaumeIOB dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/03/2019, 18h32
  3. Comment identifier les pages identiques avec une url différente ?
    Par Gorzyne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/06/2015, 12h10
  4. Identifier les liens brisés avec VBA
    Par 76morpheus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2012, 16h09
  5. Afficher les répertoires situés avec index.html
    Par petitclem dans le forum Langage
    Réponses: 3
    Dernier message: 17/06/2008, 10h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo