Programme Shell

Résolu/Fermé
diabloic Messages postés 141 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 juillet 2014 - 2 avril 2011 à 12:41
diabloic Messages postés 141 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 juillet 2014 - 7 avril 2011 à 14:47
Bonjour,

je souhaiterais récupérer en shell les informations d'une commande (traceroute) pour les stoker dans un fichier.
En fait, j'aimerais que lorsque je lance le script (avec comme paramètre le paramètre de traceroute) cela lance l'execution de traceroute puis récupère certaine information.

Quelqu'un pourrait m'aider?

J'ai commencé ça je sais pas trop si c'est bon
#Vérifie qu'il y a bien un paramètre

if [ $# -ne 1 ]
then
	echo il faut exactement un paramètre!
	exit 1
fi



# Vérifier que le paramètre correspond bien à une adresse IP de type 192.168.0.0
#ou un nom (dans le cas ou lui aurait donné un nom dans le fichier hosts)

if [ $1 != 192.168.[0-9][0-9]?[0-9]?.[0-9][0-9]?[0-9]? ] || [ $1 != [aA-zZ]]
then
	echo le premier paramère doit-être une adresse IP ou une chaîne de caractère
	exit 1
fi
	

#execution de la commande Traceroute
'./Traceroute $1' > fichier_TR

#Récupération des informations souhaitées après exécution de la commande Traceroute
#Format de la réponse Traceroute:
#1 33 ms 32 ms 33 ms raspail-2-81-57-234-254.fbx.proxad.net [81.57.234.254]
#2 33 ms 33 ms 33 ms vlq-6k-2-a5.routers.proxad.net [213.228.4.254]

#Parcourt chaque ligne du fichier. Pour chaque ligne, awk recherche des données séparées
#entre elles par le champ indiqué dans l'option -F (ici un espace) et les place dans des 
#arguments $1 , $2...$n

gawk -F" "  $1 fichier_TR > fichier_ID  # On récupère toute la colonne 1 
gawk -F" "  $8 fichier_TR > fichier_DNS # On récupère toute la colonne 8 (adresse)
gawk -F" "  $9 fichier_TR > fichier_IP # On récupère toute la dernière colonne (adresse IP)


merci d'avance

Loïc

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
2 avril 2011 à 13:28
Salut,

./Traceroute $1 | gawk 'NR != 1 {print $1 >> "ID"; print $8 >> "DNS"; print $9 >> "IP"}'

0
diabloic Messages postés 141 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 juillet 2014 5
7 avril 2011 à 14:47
merci!
0