benofdark a écrit 39 commentaires

  • [^] # Re: &

    Posté par  . En réponse au message action simultanée. Évalué à -1.

    par exemple :

    ip.cgf
    192.168.0.1
    192.168.0.2

    j'aimerai :

    faire les 4 action une par une pour 192.168.0.1 et en meme temps les faire pour 192.168.0.2

    un ami ma diriger vers Gnu parallel , quelqu'un connai ?

  • [^] # Re: &

    Posté par  . En réponse au message action simultanée. Évalué à -2.

    effectivement c'est 4 actions doivent se faire dans cette ordre , mais pour chaque IP en même temps.

  • [^] # Re: &

    Posté par  . En réponse au message action simultanée. Évalué à -2.

    c'a va paralléliser les 4 snmp , moi ce que j'aimerai c'est que les 4 soit fait dans cette ordre sur toutes les IP.

  • [^] # Re: &

    Posté par  . En réponse au message action simultanée. Évalué à -2.

    while IFS=" " read nom swip nbport machine
    do
    jour=$(date +"%d-%m-%y" )
    heure=$(date +"%T")
    echo $machine
    #Recuperation des addresse mac dans un fichier au format decimal et hexa
            #creation du fichier mac1016.dat contenant la relation mac hex / mac deci
            snmpwalk -v 2c -c public -OX -Cc $swip 1.3.6.1.2.1.17.4.3.1.1 | \
            cut -c29- | \
            awk -F " " '{ print $1,$4"-"$5"-"$6"-"$7"-"$8"-"$9 }' | \
            sort -k 1,1 > ./mac1016.dat
    
            #recuperation du portbridge et creation de bridge.dat
            snmpwalk -v 2c  -c public -Of -Cc $swip .1.3.6.1.2.1.17.4.3.1.2 |\
            cut  -c44- | \
            awk -F " " '{ print $1,$4 }' | \
            sort -k 1,1 > ./bridge.dat
    
            #recuperation du portID et creation du fichier portid.dat
            snmpwalk -v 2c  -c public -Of  $swip .1.3.6.1.2.1.17.1.4.1.2 | \
            cut  -c45- | \
            awk -F " " '{ print $4,$1 }' | \
            sort -k 1,1 > ./portid.dat
    
            #recuperation du port et creation de port.dat
            snmpwalk -v 2c  -c public -Of  $swip .1.3.6.1.2.1.31.1.1.1.1 | \
            cut -c78- | \
            awk -F " " '{ print $1,$4 }' | \
            sort -k 1,1 >./port.dat
    done < ip.cfg
    
    
  • [^] # Re: &

    Posté par  . En réponse au message action simultanée. Évalué à -2.

    j'ai essayé a plusieurs endroit. En gros les action dans les actions dans le while read sont 4 requête snmp qui utilise les adresse ip de ip.cfg . j'ai testé après le do mais ça bug.

  • [^] # Re: &

    Posté par  . En réponse au message action simultanée. Évalué à 1.

    ne marche pas : S

  • [^] # Re: &

    Posté par  . En réponse au message action simultanée. Évalué à -1.

    euh je ne suis pas sur que ça marche ! je vais testé

  • [^] # Re: Le plus propre : getopts

    Posté par  . En réponse au message Création de commande . Évalué à 1.

    MErci beaucoup j'ai pu finaliser tous ça .

  • # merci

    Posté par  . En réponse au message erreur if elif. Évalué à 1.

    Merci beaucoup !

  • # escuse moi

    Posté par  . En réponse au message erreur if elif. Évalué à 1. Dernière modification le 31/01/13 à 10:40.

    je pensai que ça suffirai :

        heure=$(date +"%T")
        echo $swip
        echo $nom
        echo $nbport
        echo $machine
    
                #Recuperation des addresse mac dans un fichier au format decimal et hexa
                #creation du fichier mac1016.dat contenant la relation mac hex / mac deci
                snmpwalk -v 2c -c public -OX -Cc $swip 1.3.6.1.2.1.17.4.3.1.1 | \
                cut -c29- | \
                awk -F " " '{ print $1,$4"-"$5"-"$6"-"$7"-"$8"-"$9 }' | \
                sort -k 1,1 > /scriptsOID/mac1016.dat
    
                #recuperation du portbridge et creation de bridge.dat
                snmpwalk -v 2c  -c public -Of -Cc $swip .1.3.6.1.2.1.17.4.3.1.2 |\
                cut  -c44- | \
                awk -F " " '{ print $1,$4 }' | \
                sort -k 1,1 > /scriptsOID/bridge.dat
    
                #recuperation du portID et creation du fichier portid.dat
                snmpwalk -v 2c  -c public -Of  $swip .1.3.6.1.2.1.17.1.4.1.2 | \
                cut  -c45- | \
                awk -F " " '{ print $4,$1 }' | \
                sort -k 1,1 > /scriptsOID/portid.dat
    
                #recuperation du port et creation de port.dat
                snmpwalk -v 2c  -c public -Of  $swip .1.3.6.1.2.1.31.1.1.1.1 | \
                cut -c78- | \
                awk -F " " '{ print $1,$4 }' | \
                sort -k 1,1 > /scriptsOID/port.dat
    
                #jointure entre les fichier .dat pour former un fichier unique servant de base de donnee
                        #jointure de mac1016.dat et port bridge.dat pour former mac16bridge.dat
                        join -1 1 -2 1 mac1016.dat bridge.dat | \
                        awk -F " " '{ print $3, $2} ' | \
                        sort -k 1,1 > mac.sort
    
                        #jointure de portid.dat et port.dat pour former portname.dat
                        join -1 1 -2 1 portid.dat port.dat | \
                        cut -d ' ' -f 2,3 | \
    
                        #supression des lignes ayant pour portID lien trunk .
                        if ($nbport == 52 );
                                then
                                awk -F " " '{if($1 != 49 && $1!=  50 && $1!= 51 && $1!=52 )print $1, $2} '  |\ ;
                        elif ($nbport == 26);
                                then
                                awk -F " " '{if($1!= 25 && $1!= 26 )print $1, $2} '  |\ ;
                        fi
                        sort -k 1,1 | \
                        sed 's/$/'" ${nom}(IP= ${swip} ) ${machine} ${jour} ${heure}"'/g' > portname.sort
    
                        #jointure de mac16bridge.dat et portname.dat pour former le fichier final BD.dat
                        join -1 1 -2 1 mac.sort portname.sort >>BD.dat
                        sort -u -k 2 BD.dat > BD.sort
    
                        # inversement de lordre des entree afin de suprimer la plus ancienne ligne de celle qui on la meme mac address
                        tac BD.sort | awk 'BEGIN { r="" } { while ($3 == r) { next } ; r = $3 ; print }' | tac >bd.sort
        done < harvest.cfg
    
    
  • [^] # Re: sed

    Posté par  . En réponse au message Format adresse mac . Évalué à 1.

    je valide aussi

    +1

  • [^] # Re: sed

    Posté par  . En réponse au message Format adresse mac . Évalué à -1. Dernière modification le 29/01/13 à 11:50.

    ouai tu 'as donnai une piste pourrait tu juste m'expliquer rapidement le :

    :label /\(:\|^\)\([0-9a-f]\)\(:\|$\)/ {s/\(:\|^\)\([0-9a-f]\)\(:\|$\)/\10\2\3/ig; b label}
    
    

    car j'ai testé ta solution mais je vai devoir l'adapté car le dernier jeu de caractère n'est pas pris en compte.

  • # certes

    Posté par  . En réponse au message Format adresse mac . Évalué à 0. Dernière modification le 29/01/13 à 10:46.

    Oui je m'en suis sorti mais le problème est différent , les adresses MAc que j'obtient ont des caractère en moi lorsque sur les 2 valeur héxa si la première est 0 il ne l'affiche pas.

  • [^] # Re: marche toujours pas

    Posté par  . En réponse au message Format mac et ipv4. Évalué à 0. Dernière modification le 25/01/13 à 13:41.

    1 00-B0-D0-22-46-16 Ethernet1/0/1 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    14 00-08-02-11-D6-01 Ethernet1/0/14 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    15 00-04-75-FE-0E-69 Ethernet1/0/15 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    16 00-04-75-D1-1F-69 Ethernet1/0/16 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    18 00-90-05-00-86-61 Ethernet1/0/18 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    19 00-21-5A-BD-F4-7C Ethernet1/0/19 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    20 00-13-20-63-18-15 Ethernet1/0/20 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    21 00-19-B9-3E-0A-26 Ethernet1/0/21 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    2 00-25-B3-0E-64-FE Ethernet1/0/2 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    24 00-1E-4F-D8-AD-0B Ethernet1/0/24 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    25 00-17-A4-51-4A-B8 Ethernet1/0/25 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    26 00-03-BA-12-53-6A Ethernet1/0/26 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    27 00-03-BA-44-91-58 Ethernet1/0/27 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    28 08-00-20-CE-DB-06 Ethernet1/0/28 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    29 00-1A-A0-E4-00-3A Ethernet1/0/29 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    32 00-19-D1-7F-01-36 Ethernet1/0/32 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    3 00-09-0F-16-36-4C Ethernet1/0/3 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    34 00-1B-54-E1-82-81 Ethernet1/0/34 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    37 00-0A-5E-4B-E4-DF Ethernet1/0/37 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    39 00-15-F2-21-21-0A Ethernet1/0/39 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    41 00-15-F2-0A-97-4E Ethernet1/0/41 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    4 00-1B-21-08-B8-F2 Ethernet1/0/4 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    45 00-01-02-CB-A8-39 Ethernet1/0/45 3COM5500(IP=192.168.7.12) PileA1 25-01-13 12:10:27
    
    

    Voila les premières lignes de mon fichier. j'essaie d'adapter ta solution pour qu'elle fonctionne et de trouver comment pourvoir afficher le résultat de la recherche mac si il trouve ou un message s'il ne trouve pas.

  • [^] # marche toujours pas

    Posté par  . En réponse au message Format mac et ipv4. Évalué à 0.

    Testé avec un awk

     awk '{if($2 = $MAC) {print $1,$2,$3 ;} else {print "Adresse non renseigne"} fi }'
    
    

    la recherche n'abouti pas .

  • [^] # Re: MErci

    Posté par  . En réponse au message Format mac et ipv4. Évalué à 1.

    J'ai 3 recherches à faire dans un fichier de se type

    82 192.168.0.1 78:E3:B5:87:25:15 Ethernet2/0/30 3com5500(IP= 192.168.7.12)

    Je souhaite pouvoir faire une recherche par ip ou mac du poste puis pas ip de switch. Cependant mes grep ne fonctionne pas je n'arrive pas a saisir q'un champs .

    une idée?

  • [^] # Re: oui

    Posté par  . En réponse au message Format mac et ipv4. Évalué à 1.

    J'ai réussi a trouver c'est deux expressions régulieres:

     if (echo $MAC | egrep "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$")then
    
    

    et

      if (echo $IP | egrep "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$")then
    
    

    Merci beaucoup à vous deux.

  • # MErci

    Posté par  . En réponse au message Format mac et ipv4. Évalué à 1.

    Merci je me renseigne sur le sujet de suite.

  • [^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre

    Posté par  . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.

    Une nouvelle question sur le même exemple de script, je me demandé si dans le fichier résulté il était possible de supprimer les ligne ayant un champ commun (exemple adresse mac) en respectant leur ordre d'arrivé dans le fichier.

  • [^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre

    Posté par  . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.

    Une nouvelle question sur le même exemple de script, je me demandé si dans le fichier résulté il était possible de supprimer les ligne ayant un champ commun (exemple adresse mac) en respectant leur ordre d'arrivé dans le fichier.

  • [^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre

    Posté par  . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.

    Une autre question qui me passé par la tête.
    Et-il possible d'effectuer un contrôle de saisie basée sur un format (exemple MAC ou IPv4)?

  • [^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre

    Posté par  . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.

    Merci beaucoup pour vos solution.

  • [^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre

    Posté par  . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.

    erreur de ma part c'est sur le 2 eme champs.

  • [^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre

    Posté par  . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.

    Le réel problème vient de là et j'y travail . aoprès deux precolte le fichier BD.dat m'affiche

    ID MAC              Port          Switch      IP             Date      Heure
    1 00:B0:D0:22:46:16 Ethernet1/0/1 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:55:02
    1 00:B0:D0:22:46:16 Ethernet1/0/1 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:59:55
    14 00:08:02:11:D6:01 Ethernet1/0/14 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:55:02
    14 00:08:02:11:D6:01 Ethernet1/0/14 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:59:55
    15 00:04:75:FE:0E:69 Ethernet1/0/15 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:59:55
    16 00:04:75:D1:1F:69 Ethernet1/0/16 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:55:02
    16 00:04:75:D1:1F:69 Ethernet1/0/16 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:59:55
    18 00:90:05:00:86:61 Ethernet1/0/18 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:55:02
    18 00:90:05:00:86:61 Ethernet1/0/18 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:59:55
    19 00:21:5A:BD:F4:7C Ethernet1/0/19 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:55:02
    19 00:21:5A:BD:F4:7C Ethernet1/0/19 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:59:55
    20 00:13:20:63:18:15 Ethernet1/0/20 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:55:02
    20 00:13:20:63:18:15 Ethernet1/0/20 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:59:55
    21 00:19:B9:3E:0A:26 Ethernet1/0/21 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:55:02
    21 00:19:B9:3E:0A:26 Ethernet1/0/21 3com5500(IP= xxx.xxx.x.xx) 22-01-13 15:59:55
    
    

    Il faut que j'arrive a géré les doublons sur le 3eme champ en gardant le plus vieux

  • [^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre

    Posté par  . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.

    le problème vient justement du fait que seul la dernière occurrence (j'aurai du l'annoncer plus haut ). Si le script est lancé de maniéré régulière pour garder l'information à jour en vue d'un réseau mouvent, je doit être en mesure de gardé pour 2 MAC identique la dernière occurrence remonté.