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 :

Aide script / compter le nombre de process


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 20
    Par défaut Aide script / compter le nombre de process
    Bonjour,

    J'ai un petit soucis avec un script shell que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/bash
     
    nb_occurence=`ps -edf | grep $1 | grep -v "grep" | wc -l`
     
    if [ $nb_occurence -eq 0 ]
    then
            echo "CRITICAL : process $1 not running"
            exit 2
    else
            if [ $nb_occurence -eq 1 ]
            then
                    echo "OK : process $1 running"
            fi
            if [ $nb_occurence -gt 1 ]
            then
                    echo "WARNING : plusieurs process $1 running"
                    exit 1
            fi
    fi
    Je souhaite vérifier le nombre de process qui tourne sur ma machine. Le process est placé en argument quand j'appelle le script.

    Si j'exécute la commande sans le script, voila ce que cela donne :
    # ps -edf | grep httpd | grep -v "grep" | wc -l
    10


    Si j'exécute mon script en debug, voici ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # bash -x check_process.sh httpd
    ++ ps -edf
    ++ grep httpd
    ++ grep -v grep
    ++ wc -l
    + nb_occurence=13
    + '[' 13 -eq 0 ']'
    + '[' 13 -eq 1 ']'
    + '[' 13 -gt 1 ']'
    + echo 'WARNING : plusieurs process httpd running'
    WARNING : plusieurs process httpd running
    + exit 1[/CODE]


    Au lieu de compter 10 occurrences, mon script en compte 13.

    Si quelqu'un a une idée pour corriger cela ?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 635
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    Bonjour,

    bizarre...regarde avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/bin/bash
     
    [ -n "$1" ] && Process="$1" || exit 1
     
    inst=( $(pgrep "$Process") )
     
    if (( ${#inst[@]} == 1 ))
    then echo "OK : process $1 running"
    elif (( ${#inst[@]} > 1 ))
    then echo "WARNING : ${#inst[@]} process $1 running"
         exit 1
    else echo "CRITICAL : process $1 not running"
         exit 2
    fi
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 20
    Par défaut
    Ton script fonctionne nickel. Mais je ne comprend pas pourquoi pas le mien !!

  4. #4
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 20
    Par défaut
    Je reviens sur mon problème de script. J'ai donc testé celui de N_BaH qui fonctionne très bien sous RedHat mais pas sous AIX car il n'y a pas de commande pgrep.

    Je m'y connais pas trop en AIX donc si quelqu'un aurait une idée, elle sera la bienvenu !!

    Merci

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 635
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    Bonjour,

    Les trois occurrences ajoutées sont :
    celle du bash -x
    celle du script
    celle du subshell ` `

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nb_occurence=$(ps -ef | grep $1 | grep -Ev "(grep|$0)" | wc -l)
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre averti
    Inscrit en
    Décembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 20
    Par défaut
    trop bien, ça fonctionne. Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script php pour compter le nombre total de lignes d'un projet en php
    Par ypcman dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 29/12/2015, 16h57
  2. Shell script pour compter le nombre de fichiers par extension
    Par andress33 dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 30/03/2015, 01h26
  3. Script shell pour compter le nombre de mots "ok"
    Par smtp2014 dans le forum Shell et commandes GNU
    Réponses: 24
    Dernier message: 11/03/2014, 19h11
  4. Réponses: 3
    Dernier message: 03/04/2011, 21h25
  5. Réponses: 2
    Dernier message: 15/06/2009, 18h41

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