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 :

Calcul espace disque de fichier spécifique (après find)


Sujet :

Shell et commandes GNU

  1. #21
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 44
    Points : 146
    Points
    146
    Par défaut
    dans ce cas, tu ne peux utiliser l'expansion de noms bash tel que je l'ai indiqué. Exploite plutôt ce que N_BaH t'as fourni :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    size=$(( $(find /var/www/http/xxx -type f ! -iname "*.php" -a ! -iname "*.java" -printf "+%s " 2>/dev/null) ))
    awk ' { printf "%.10f Gb\n", $1/(1024*1024*1024) } ' <<< ${size}

  2. #22
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Yop,

    en reprennant le code de chardclo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    size=$(( $(find /var/www/http/xxx -type f ! -iname "*.php" -a ! -iname "*.java" -printf "+%s " 2>/dev/null) ))
    awk 'BEGIN{sum=$size;
    hum[1024**3]="Go";hum[1024**2]="Mo";hum[1024]="Ko"; 
    for (x=1024**3; x>=1024; x/=1024){ 
            if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x];break }
    }}'
    Comme cela si tu as des Go des Mo des Ko, tu auras directement le bon format
    ++

  3. #23
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Merci, mais j'obtiens cette erreur :

    awk: line 2: syntax error at or near *
    awk: line 2: syntax error at or near *
    awk: line 3: syntax error at or near *
    awk: line 3: extra ')'
    awk: line 3: syntax error at or near {

    Merci

  4. #24
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    tente avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    size=$(( $(find /var/www/http/xxx -type f ! -iname "*.php" -a ! -iname "*.java" -printf "+%s " 2>/dev/null) ))
    echo $size | awk '{sum=$1;hum[1024^3]="Go";hum[1024^2]="Mo";hum[1024]="Ko"; for (x=1024^3; x>=1024; x/=1024){ if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x];break }}}'

  5. #25
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Quand je l'execute, je n'ai plus la main ca fait au moins 10min que ca tourne là, c'est normal ?

  6. #26
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    as tu bien la même ligne que moi ? (j'ai retiré le BEGIN et remplacé $size par $1 suite à mon pipe sur echo)

  7. #27
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    La commande ne me renvoie aucun résultat.

  8. #28
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Quelle est la taille que tu devrais avoir normalement ?

    //edit je crois savoir d'pù ça vient c'est la variable size qui recoit pas la bonne valeur, donc ma seconde ligne foire

  9. #29
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Des tailles uniquement en Ko car je le teste sur des répertoires de test qui ne contiennent pas beaucoup de fichiers.
    Mais il est possible que le volume atteignent le Go.

    Donc avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tailleo=`find /var/java/$dossier -type f ! -iname "*.php" -a ! -iname "*.php~" -a ! -iname "*.class" -a ! -iname "*.class~" -a ! -iname "*.java" -a ! -iname "*.java~" -exec du  --apparent-size {} \; | awk '{SUM += $1} END { print SUM}'`
    J'obtiens bien la bonne taille, mais uniquement en Ko.

    J'aimerais donc pouvoir l'obtenir également en Mo ou Go par exemple, l'idéal serait bien sur d'adapter le résultat affiché, par exemple si ça dépasse pas le Ko en Ko, si c'est plus de 1000Ko en Mo etc... mais j'en demande peut-être beaucoup donc fais comme tu le peux c'est déjà très sympa de ta part.

    Je t'en remercie beaucoup

  10. #30
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    essaie avec ceci, l'erreur venait bien de la première ligne ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tailleo=`find /var/java/$dossier -type f ! -iname "*.php" -a ! -iname "*.php~" -a ! -iname "*.class" -a ! -iname "*.class~" -a ! -iname "*.java" -a ! -iname "*.java~" -exec du  --apparent-size {} \; | awk '{SUM += $1} END { print SUM}'`
    echo $tailleo | awk '{sum=$1;hum[1024^3]="Go";hum[1024^2]="Mo";hum[1024]="Ko"; for (x=1024^3; x>=1024; x/=1024){ if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x];break }}}'

  11. #31
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Non, toujours aucun resultat affiché.

  12. #32
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    et avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    tailleo=`find /var/java/$dossier -type f ! -iname "*.php" -a ! -iname "*.php~" -a ! -iname "*.class" -a ! -iname "*.class~" -a ! -iname "*.java" -a ! -iname "*.java~" -exec du  --apparent-size {} \; | awk '{SUM += $1} END { print SUM}'`
    echo $tailleo
    echo "Avant awk"
    echo $tailleo | awk '{sum=$1;hum[1024^3]="Go";hum[1024^2]="Mo";hum[1024]="Ko";hum[1]="octets"; for (x=1024^3; x>=1; x/=1024){ if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x];break }}}'
    echo "Après awk"
    car la je séche totalement et ça passe sur ma Debian

  13. #33
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    ceci:

    Avant awk
    awk: line 1: syntax error at or near for
    awk: line 1: extra ')'
    awk: line 1: syntax error at or near {
    awk: line 1: syntax error at or near }
    AprÚs awk

  14. #34
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    corrigé :p oublié un ; après octets" et bien remis le e à $tailleo
    Désolé je suis un peu hs aujourd'hui

  15. #35
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Ca:

    Avant awk
    20.00 octets
    AprÚs awk

    Avant awk
    354.00 octets
    AprÚs awk

  16. #36
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Bon bah voila tu sais pourquoi ça renvoyé rien, la valeur de $tailleo est inférieure à 1024 :p Donc la maintenant tu as la taille qui s'affiche vraiment :p
    Si juste avant mon awk tu fais un
    ca te marque 1Ko

  17. #37
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    D'accord, mais si cela fait plus de 1024 0ctets, j'aurai la taille en Mo ?

    Par exemple si ca renvoie 2048 octets, ca affichera 2Mo ?

  18. #38
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Plus de 1024Ko tu veux dire, donc 1024*1024 octets
    si tu as tailleo qui vaut 2097152 alors tu auras 2 Mo

  19. #39
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 26
    Points
    26
    Par défaut
    Désolé j'ai fait une erreur:

    Les resultats que j'obtiens sont deja en Ko:

    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tailleo=`find /var/java/$dossier -type f ! -iname "*.php" -a ! -iname "*.php~" -a ! -iname "*.class" -a ! -iname "*.class~" -a ! -iname "*.java" -a ! -iname "*.java~" -exec du  --apparent-size {} \; | awk '{SUM += $1} END { print SUM}'`
    J'obtiens un resultat en Ko.

  20. #40
    Membre éprouvé
    Avatar de f-k-z
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2006
    Messages : 403
    Points : 928
    Points
    928
    Par défaut
    Boarf, suffit de changer l'ordre de grandeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tailleo=`find /var/java/$dossier -type f ! -iname "*.php" -a ! -iname "*.php~" -a ! -iname "*.class" -a ! -iname "*.class~" -a ! -iname "*.java" -a ! -iname "*.java~" -exec du  --apparent-size {} \; | awk '{SUM += $1} END { print SUM}'`
    echo $tailleo | awk '{sum=$1;hum[1024^3]="To";hum[1024^2]="Go";hum[1024]="Mo";hum[1]="Ko"; for (x=1024^3; x>=1; x/=1024){ if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x];break }}}'
    voir supprimer la relation avec le To vu que je pense aps que tu en as...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tailleo=`find /var/java/$dossier -type f ! -iname "*.php" -a ! -iname "*.php~" -a ! -iname "*.class" -a ! -iname "*.class~" -a ! -iname "*.java" -a ! -iname "*.java~" -exec du  --apparent-size {} \; | awk '{SUM += $1} END { print SUM}'`
    echo $tailleo | awk '{sum=$1;hum[1024^2]="Go";hum[1024]="Mo";hum[1]="Ko"; for (x=1024^2; x>=1; x/=1024){ if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x];break }}}'

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/08/2011, 17h42
  2. ASP+ calcule espace disque
    Par zaki_1982 dans le forum ASP
    Réponses: 1
    Dernier message: 11/02/2010, 21h52
  3. Calcul d'espace disque
    Par Pwill dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 08/07/2005, 18h45
  4. Réponses: 4
    Dernier message: 31/08/2004, 18h11

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