• [^] # Re: pour repondre a la question:

    Posté par (site web personnel, Mastodon) . En réponse au message Besoin d'aide Script d'automatisation ??. Évalué à 2.

    problème 1: grep renvoie 0 s'il trouve des occurences, et 1 s'il ne trouve rien, et pas le nombre d'occurences trouvées

    Ensuite, n'utilise pas grep, parce que si tu as les process tata et tatata tu n'arriveras pas à les différencier. Utilise plutôt pidof qui lui te retournera les PID des process que tu recherches (3 process => 3 PID).

    Avec wc -w tu peux compter le nombre de process trouvés.

    Et voilà, c'est fini. T'as du bol, j'avais qu'un truc urgentissime à faire ce soir... Fais chier, je dois y retourner...

    #!/bin/bash

    cat liste | while read process nb
    do
    echo "debug: Searching process: $process ($nb)"

    nbfound=$(pidof $process | wc -w)
    echo "debug: Found $nbfound time(s) $process"

    if [[ $nbfound != $nb ]]
    then
    echo "`date "+%d/%m/%y"` Process '$process' missing (expected $nb, found $nbfound)" >> alarme.log

    fi
    done


    PS:
    la référence en cours de shell script:
    http://www.tldp.org/LDP/abs/html/index.html (en)
    http://www.bsdbooks.net/shells/scripting/fr/ (fr)

    La version anglaise est la plus à jour