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 janvier 2013 à 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 janvier 2013 à 11:50.

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

    :label /\(:\|^\)\([0-9a-f]\)\(:\|$\)/ {s/\(:\|^\)\([0-9a-f]\)\(:\|$\)/1円02円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 janvier 2013 à 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 janvier 2013 à 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é.