Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableau de tableau [Script Bash]

Bash

Sujet résolu
    10 novembre 2022 à 17:51:41

    Bonjour, 

    Je suis en train de développer un script qui permet de récupérer des informations sur des équipements informations sur plusieurs étages en : 

    [hosts]:[cisco||juniper]:up

    Par chaque bâtiment ça doit être redirigé vers un fichier spécifique (exemple : BATA.txt ; pour tous les équipements du batîments A)

    Problème : 

    Avec ma boucle for, j'arrive bien à interroger avec un ping sur un bâtiment et une bonne redirection. 

    Le problème étant quand je veux rajouter un nouveau bâtiment 

    Mon interrogation snmp permet de voir si l'équipement est un modèle Juniper ou cisco : si je ne récupère pas MIB alors cisco. 

    #!/bin/bash
    
    
    ### Suppression des fichiers ###
    truncate -s 0 BATA.txt
    truncate -s 0 BATB.txt
    
    ### Récupère les équipements ###
    BATA=$(sed -n '/BAT A/,/BAT B/p' /etc/XXX | grep ^1 | awk '{print $2}' | sort)
    BATB=$(sed -n '/BAT B/,/BAT C/p' /etc/XXX | grep ^1 | awk '{print $2}' | sort)
    
    
    ### Ping et redirection vers un fichier pour le Batiment A ###
    #for a in $BATA; do
    
            ### Vérification des versions (Cisco ou Juniper) ###
            version=$(snmpwalk -v 3 -l authPriv -u xxx-a md5 -A xxx -x des -X xxx $a .1.3.6.1.2.1.1)
            version=$(snmpwalk -v 3 -l authPriv -u xxxx-a md5 -A xxx -x des -X  xxxxx $b .1.3.6.1.2.1.1)
    
                    ping -c1 -q $BATA > /dev/null
                    ping -c1 -q $BATB > /dev/null
                    ### Si : Ping et Juniper ou un commut spé alors redirection ###
                    if [[ $? != 1 ]] && [[ $version =~ "MIB" ]];then
                            echo "$BATA:juniper:up" >> BATA.txt
                            echo "$BATB:juniper:up" >> BATB.txt
                    else
                            echo "$BATB:cisco:up" >> BATA.txt
                            echo "$BATB:juniper:up" >> BATB.txt
                    fi
    
    
    #done
    

    Si vous avez des suggestions ? 

    Je vous remercie par avance 

    -
    Edité par Sarrah-Web 10 novembre 2022 à 20:43:17

    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2022 à 14:30:24

      je n'ai pas trop compris ton problème, mais dans le script que tu nous donnes, ligne 17 et 18 tu as la même variable version; donc au final, elle aura toujours la valeur de la ligne 18, écrasant la valeur de la ligne 17; et donc tu devrais "dupliquer" les lignes du bloc if  ligne 23 pour chaque bâtiment (dans un 1er temps)
      • Partager sur Facebook
      • Partager sur Twitter
        15 novembre 2022 à 10:49:58

        Je me suis trop compliqué la vie, j'ai réussi à m'en sortir sans tableau ^^'

        Autre question par rapport au script bash, connais-tu une boucle qui permet de comparer plusieurs fichiers et de mettre la différence dans un fichier. 

        Je m'explique :

        J'ai un fichier : all.txt -> à l'intérieur de celui-ci j'ai tous les noms des équipements. 

        Grâce à ce fichier j'ai fais des tries et rediriger vers des fichiers , j'aimerai comparé les redirection et voir dans le fichier all.txt s'il y a des équipements non tries.

         Objectif

        • Partager sur Facebook
        • Partager sur Twitter
          15 novembre 2022 à 14:35:18

          J'ai utilisé la commande comm (option) -23

          Je te remercie pour les réponses umfred :)

          • Partager sur Facebook
          • Partager sur Twitter

          Tableau de tableau [Script Bash]

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown