You are on page 1of 3

CHAPEAU Ghislain, CLOUX Matthieu, POIX Vincent

20/05/2015

Compte rendu du PPE Script réseau
But du TPE :
Créer un script de diagnostic et de dépannage réseau pour système Linux.

Configuration initiale
Notre PPE sera effectué en utilisant une machine virtuelle Debian.

COMPTE RENDU DU PPE SCRIPT RESEAU

CHAPEAU Ghislain, CLOUX Matthieu, POIX Vincent

20/05/2015

Rédaction du fichier de script
Notre but était de créer un script permettant d'automatiser le diagnostic de la configuration réseau
de notre machine, et a terme, de proposer des pistes de résolution des problèmes.
Pour ce faire, nous avons utilisé les commandes egrep et awk, nous permettant alors de sélectionner
les lignes / colonnes contenant les informations désirées dans les fichiers de configuration / résultats
de commandes.
Nous avons commencé la rédaction de notre script par une simple ligne permettant de savoir si eth0
est configuré en DHCP ou en Statique.
dhcp=$( less /etc/network/interfaces | egrep '^iface eth0' | awk '{print $4}' )
La variable dhcp nous indiquait alors DHCP ou Static.
Puis nous avons procédé de manière similaire pour l'ip, le masque et le broadcast.
ip=$(ifconfig eth0 | egrep 'inet adr:' | awk '{print $2}' | awk -F: '{print $2}' )
echo L\'adresse ip est: $ip
mask=$(ifconfig eth0 | egrep 'inet' | awk '{print $4}' | awk -F: '{print $2}' )
echo Le masque de sous reseau est: $mask
broad=$(ifconfig eth0 | egrep 'inet'| awk '{print $3}' | awk -F: '{print $2}' )
echo L\'adresse de broadcast est: $broad
A ce stade, nous nous sommes intéressés a la possibilité de modifier le script afin d'ajouter le choix
de l'interface, permettant ainsi d'extraire la configuration de n'importe quelle interface.
Pour ce faire, nous avons utilisé la commande read et stocké le résultat dans une variable if.
Voici le script a ce stade du développement :
echo "Entrez le nom de l'interface : "
read if
dhcp=$( less /etc/network/interfaces | egrep '^iface '$if | awk '{print $4}' )
if [ "$dhcp" != "" ];
then
echo Votre interface $if est en $dhcp
ip=$(ifconfig $if | egrep 'inet adr:' | awk '{print $2}' | awk -F: '{print $2}' )
echo L\'adresse ip est: $ip
mask=$(ifconfig $if | egrep 'inet' | awk '{print $4}' | awk -F: '{print $2}' )
echo Le masque de sous reseau est: $mask
broad=$(ifconfig $if | egrep 'inet'| awk '{print $3}' | awk -F: '{print $2}' )
echo L\'adresse de broadcast est: $broad
fi
COMPTE RENDU DU PPE SCRIPT RESEAU

CHAPEAU Ghislain, CLOUX Matthieu, POIX Vincent
20/05/2015
Nous avons ensuite souhaité aller plus loin dans le diagnostic en ajoutant notamment le calcul de
l'adresse réseau en utilisant une fonction supplémentaire de awk : le ET binaire.
echo $ip
ip1=$(echo $ip | awk -F. '{print $1; }')
ip2=$(echo $ip | awk -F. '{print $2; }')
ip3=$(echo $ip | awk -F. '{print $3; }')
ip4=$(echo $ip | awk -F. '{print $4; }')
echo $ip1.$ip2.$ip3.$ip4
mask1=$( echo $mask | awk -F. '{print $1 ; }' )
mask2=$( echo $mask | awk -F. '{print $2 ; }' )
mask3=$( echo $mask | awk -F. '{print $3 ; }' )
mask4=$( echo $mask | awk -F. '{print $4 ; }' )
echo $mask1.$mask2.$mask3.$mask4
pass1=$( awk 'BEGIN{ print and('$ip1','$mask1'); }' )
pass2=$( awk 'BEGIN{ print and('$ip2','$mask2'); }' )
pass3=$( awk 'BEGIN{ print and('$ip3','$mask3'); }' )
pass4=$( awk 'BEGIN{ print and('$ip4','$mask4'); }' )
echo $pass1.$pass2.$pass3.$pass4
pass=$pass1.$pass2.$pass3.$pass4
echo $pass
Nous avons du stopper le développement de notre script a ce stade à cause d'un manque de temps.

Ressources
Le fichier fourni et le cours sur le Shell.

COMPTE RENDU DU PPE SCRIPT RESEAU