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 :

Sortie du script pour centreon


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut Sortie du script pour centreon
    Bonjour a tous,

    J'ai fait un script pour verifie le contenu des plusieurs fichiers, il faut avoir un ligne rempli a l'interieur du fichier, si il y a plus signifique que il y a un probleme.
    le script marche bien mais je ne sais pas comment et où mettre le "exit 0"(ok) et "exit 1" (warning), car si je lui met dans la boucle elle s'arrete, et a la fin ne marche pas.

    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
    20
    21
    22
    serveur=$1
    dossier="/toto/tata/log/"
    fichiers=$2
     
    nom_fichier=`ssh -o StrictHostKeyChecking=no root@$serveur ls $dossier$fichiers `
     
    sortie=exit 2
    echo "les fichiers: $nom_fichier "
     
    for f in $nom_fichier
    do
       echo "  resultat for: " $f
       s_nb=`ssh -o StrictHostKeyChecking=no root@$serveur wc -l $f |grep -v total | tr -s ' ' '\011' |cut -f2`
       if [ "$s_nb" = "1" ]
       then
          echo "ok : $f " $s_nb;
       else
          echo "critique: $f " $s_nb;
       fi
    done
     
    exit $sortie;

    merci d'avance

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

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

    ton algorithme est très mal exposé : on ne comprend pas très bien ce que tu veux, et où tu comptes obtenir les informations qui décident de telle ou telle action.
    et probablement mal conçu;

    qu'est-ce qui conditionne le code de retour du script ?
    pourquoi utiliser une boucle alors qu'il semble n'y avoir qu'un seul nom de fichier passé au script ?
    pourquoi le test sur le nombre de lignes n'est-il pas réalisé sur le serveur ?
    ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ wc -l monFichier
    8 monFichier
    $ wc -l <monFicher
    8
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre régulier
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut
    bonjour,

    desole je suis debutante.

    le dossier est toujour le meme mais celui-ci il y a plusieurs fichiers et je veux que verifie sur les fichiers, "tata*.txt" c'est pour sa que je fait une boucle for.
    le teste est fait apartir du serveur nagios via ssh car il faut que le script se trouve sur nagios mais le serveur que je veux controle est un autre serveur.
    l'objectives du script est de voir si dans les fichiers il y que une seule ligne, si il y a plus qu'une le script doit affiche sur centreon warning.
    j'ai fait plusieurs echo pour verifie que il marche bien.
    le probleme est que je ne sais pas comment affiche le resultat de la boucle.

    j'espere que je reussie a m'explique

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour,

    un script a, par défaut, des paramètres en entrée, une sortie standard, un sortie d'erreur et un code retour. Es-tu sûre d'être au clair avec toutes ces notions ?

    La sortie de "ls" peut être:
    La sortir d'erreur de "ls monfichier" peut être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls: impossible d'accéder à monfichier: No such file or directory
    Le code retour est 0 si le script s'est exécuté sans problème. Le code retour est le numéro de l'erreur s'il y a un problème. Dans le cas précédent, le code retour est 2. Dans le premier cas, le code retour est 0.


    Enfin, voici deux commandes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ ls > resultat.txt 2> erreurs.txt
    $ echo $?
    0
    La première redirige la sortie standard dans le fichier resultat.txt, et les erreurs dans erreurs.txt.
    $? est le code retour de la dernière commande utilisée. A stocker vite, si tu ne veux pas la perdre.

    Maintenant, à toi de savoir ce que tu veux vraiment.

  5. #5
    Membre régulier
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Par défaut
    j'arrive a afficher le resultat quand je declanche le script.
    maintenant je n'arrive pas afficher le resultat a la fin de la boucle for pour centreon..
    en fait il marche bien en ligne de commande sur nagios mais pas pour afficher sur centreon..
    quelqu'un se connai en scripts pour execute sur Centreon?

    merci

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Citation Envoyé par zurca
    quelqu'un se connai en scripts pour execute sur Centreon?
    je ne saurais pas te répondre.

    par contre, je persiste à dire que la boucle devrait être exécutée sur le serveur : cela permettrait de n'avoir qu'une seule connexion ssh !

    EDIT:
    le fait que le code de retour du script indique une erreur ne pourrait-il pas indisposer centreon ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Script pour back up database
    Par jeff37 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/09/2004, 15h57
  2. script pour ajouter des utilisateurs postgres
    Par xopos dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 16/08/2004, 10h49
  3. [langage] cherche script pour formater une chaine
    Par MASSAKA dans le forum Langage
    Réponses: 7
    Dernier message: 12/11/2003, 12h18
  4. [pgaccess] Script pour formulaire
    Par garou51 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/06/2003, 08h30
  5. Script pour envoyer des info a mysql
    Par rhum1 dans le forum Linux
    Réponses: 6
    Dernier message: 15/04/2003, 16h19

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