• # 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.

     #!/bin/bash
     ########################################################################
     #Recuperation des addresse mac dans un fichier au format decimal et hexa
     snmpwalk -v 2c -c public -OX xxx.xxx.xxx.xxx 1.3.6.1.2.1.17.4.3.1.1 > /scriptsOID/mac1016.tmp
     #creation du fichier mac1016.dat contenant la relation mac hex / mac deci
     while read line;
     do echo -e ${line:29} >> /scriptsOID/mac1016b.tmp
     done < /scriptsOID/mac1016.tmp;
     awk -F " " '{ print 1,ドル4ドル":"5ドル":"6ドル":"7ドル":"8ドル":"9ドル }' /scriptsOID/mac1016b.tmp >> /scriptsOID/mac1016.dat
    #recuperation du portbridge
    snmpwalk -v 2c -c public -Of xxx.xxx.xxx.xxx .1.3.6.1.2.1.17.4.3.1.2 > /scriptsOID/bridge.tmp
    #creation du fichier bridge.dat
    while read line;
    do echo -e ${line:44} >> /scriptsOID/bridgeb.tmp
    done < /scriptsOID/bridge.tmp
    awk -F " " '{ print 1,ドル4ドル }' /scriptsOID/bridgeb.tmp >> /scriptsOID/bridge.dat
    #recuperation du portID**
    snmpwalk -v 2c -c public -Of xxx.xxx.xxx.xxx .1.3.6.1.2.1.17.1.4.1.2 > /scriptsOID/portid.tmp
    #creation du fichier portid.dat
    while read line;
    do echo -e ${line:44} >> /scriptsOID/portidb.tmp
    done < /scriptsOID/portid.tmp
    awk -F " " '{ print 4,ドル1ドル }' /scriptsOID/portidb.tmp >> /scriptsOID/portid.dat
    #recuperation du port
    snmpwalk -v 2c -c public -Of xxx.xxx.xxx.xxx .1.3.6.1.2.1.31.1.1.1.1 >> port.tmp
    #creation du fichier port.dat
    while read line;
    do echo -e ${line:77} >> /scriptsOID/portb.tmp
    done < /scriptsOID/port.tmp
    awk -F " " '{ print 1,ドル4ドル }' /scriptsOID/portb.tmp >> /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 <(fgrep -f <(cut -d ' ' -f 1 ./mac1016.dat) bridge.dat)> mac16bridge.dat
     awk -F " " '{ if (3ドル<49) print 3,ドル 2ドル} ' ./mac16bridge.dat > ./mac16bridge.tmp
     sort mac16bridge.tmp > mac.sort
     #jointure de portid.dat et port.dat pour former portname.dat
     join -1 1 -2 1 ./portid.dat <(fgrep -f <(cut -d ' ' -f 1 ./portid.dat) port.dat)> portname.dat
     cut -d ' ' -f 2,3 ./portname.dat >portname.tmp
     awk -F " " '{ if (1ドル<49) print 1,ドル 2ドル} ' ./portname.tmp > ./portname.tmp2
     sort ./portname.tmp2 > ./portname.sort
     #jointure de mac16bridge.dat et portname.dat pour former le fichier final BD.dat
     join -1 1 -2 1 ./mac.sort <(fgrep -f <(cut -d ' ' -f 1 ./mac.sort) portname.sort)> BD.dat
    
    

    Pour le moment mon scripts ressemble à ça il sert a récupéré en SNMP les info d'un switch et à établir un tableau sous la forme :
    Adresse mac port ip du switch

    Mais la jointure me pose toujours problème.

    Mon scripts n'est pas très beau mais c'est plutôt nouveau tout ça pour moi .