Programme Shell

[Résolu/Fermé]
Signaler
Messages postés
141
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
28 juillet 2014
-
Messages postés
141
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
28 juillet 2014
-
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

Messages postés
36324
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 374
Salut,

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

Messages postés
141
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
28 juillet 2014
4
merci!