Advertisement
Guest User

script

a guest
Oct 13th, 2015
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.04 KB | None | 0 0
  1. #!/bin/bash    
  2.  
  3. #######################
  4. # Createurs:
  5. #   - Vlad Stefan Stamate
  6. #   - Momo
  7. # Date: 21-09-2015
  8. # Nom: Devoir 1
  9. # Description:
  10. #   1. Tenter d'établir une connexion sur un serveur connu (pourquoi pas 8.8.8.8)
  11. #       2. Si la connexion peut être établie, tout va bien, le réseau fonctionne à ce moment
  12. #       3. Si le réseau est inaccessible, le script doit rapporter une erreur
  13. #       4. Si c'est l'hôte qui n'est pas accessible, le script doit essayer un certain nombre de fois avant de rapporter une erreur
  14. ########################
  15.  
  16. # methode d'execution
  17. # script.sh [modeDexecution]
  18. # Codes de retours:
  19.  
  20.  
  21.  
  22. # Variables initiales
  23. notreServeur="8.8.8.8"
  24. autreServeur="8.8.4.4"
  25. fichierDesLogs="logs.txt"
  26. dateActuelle=$(date +"%d-%m-%Y - %T")
  27. compteur=0
  28.  
  29. # on verifie les parametres
  30. if [ -z $1 ]; then
  31.     # le script doit s'arreter. L'argument "verbeau" ou "silencieu" n'existe pas
  32.     exit 1;
  33. fi
  34.  
  35. # on lis le mode d'execution du script
  36. modeDexecution=$1
  37.  
  38. modeVerbeau() {
  39.     # Tenter d'établir une connexion sur un serveur connu (pourquoi pas 8.8.8.8)
  40.     ping -w 5 $notreServeur # ping notre serveur interne sans rien afficher a l'ecran
  41.     codeDeRetourPingNotreServeur=$? # on sauvegarde le code de retour dans une variable pour une future utilisation
  42.  
  43.  
  44.     if [ $codeDeRetourPingNotreServeur = 0 ]
  45.         then
  46.             # la connexion peut être établie, tout va bien, le réseau fonctionne à ce moment.
  47.             echo $dateActuelle " - On a pu communiquer avec" $notreServeur | tee -a $fichierDesLogs
  48.             set -e
  49.             exit 3;
  50.     elif [ $codeDeRetourPingNotreServeur = 2 ]
  51.         then
  52.             # si le réseau est inaccessible, le script doit rapporter une erreur
  53.             echo $dateActuelle " - Vous n'etes pas connectez a un reseau." | tee -a $fichierDesLogs
  54.         for ((i=$compteur ; $compteur=5 ; compteur++))
  55.         do
  56.             ping -w 5 $notreServeur
  57.         done           
  58.     exit 4;
  59.    
  60.     else
  61.         # nous sommes connectes a un reseau, on va voir si un site connu nous repond
  62.         ping -w 5 $autreServeur
  63.         codeDeRetourPingAutreServeur=$?
  64.         if [ $codeDeRetourPingAutreServeur = 0 ]
  65.             then
  66.                 # nous avons access a internet, mais le serveur local ne repond pas
  67.                 echo $dateActuelle " - Vous etes connecte a intenret, mais notre serveur local ne fonctionne pas!" | tee -a $fichierDesLogs
  68.                 exit 5;
  69.             else
  70.                 # nous n'avons pas access a internet et le serveur local ne repond pas
  71.                 echo $dateActuelle " - Vous n'etes pas connecte a intenret et notre serveur local ne fonctionne pas!" | tee -a $fichierDesLogs
  72.                 exit 6;
  73.         fi
  74.     fi
  75. }
  76.  
  77.  
  78. modeSilencieu() {
  79.     # Tenter d'établir une connexion sur un serveur connu (pourquoi pas 8.8.8.8)
  80.     ping -w 5 $notreServeur >> /dev/null # ping notre serveur interne sans rien afficher a l'ecran
  81.     codeDeRetourPingNotreServeur=$? # on sauvegarde le code de retour dans une variable pour une future utilisation
  82.  
  83.  
  84.     if [ $codeDeRetourPingNotreServeur = 0 ]
  85.         then
  86.             # la connexion peut être établie, tout va bien, le réseau fonctionne à ce moment.
  87.             echo $dateActuelle " - On a pu communiquer avec" $notreServeur >> $fichierDesLogs
  88.             set -e
  89.             exit 3;
  90.     elif [ $codeDeRetourPingNotreServeur = 2 ]
  91.         then
  92.             # si le réseau est inaccessible, le script doit rapporter une erreur
  93.             echo $dateActuelle " - Vous n'etes pas connectez a un reseau." >> $fichierDesLogs
  94.             exit 4;
  95.     else
  96.         # nous sommes connectes a un reseau, on va voir si un site connu nous repond
  97.         ping -w 5 $autreServeur > /dev/null
  98.         codeDeRetourPingAutreServeur=$?
  99.         if [ $codeDeRetourPingAutreServeur = 0 ]
  100.             then
  101.                 # nous avons access a internet, mais le serveur local ne repond pas
  102.                 echo $dateActuelle " - Vous etes connecte a intenret, mais notre serveur local ne fonctionne pas!" >> $fichierDesLogs
  103.                 exit 5;
  104.             else
  105.                 # nous n'avons pas access a internet et le serveur local ne repond pas
  106.                 echo $dateActuelle " - Vous n'etes pas connecte a intenret et notre serveur local ne fonctionne pas!" >> $fichierDesLogs
  107.                 exit 6;
  108.         fi
  109.     fi
  110.  
  111. }
  112.  
  113. manu () {
  114. echo "
  115. l'utilisation de ce script permet de tester la connexion réseau vers les serveurs dns de google ainsi la connexion réseau vers la paserelle
  116. voici la syntaxe de l'utilisation du script
  117. script.sh -s :
  118.     permet de tester la connexion en mode silencieux sans afficher le resultat de la commande
  119. script.sh -v :
  120.     permet de tester la connexion en verbose en affichant chaque resultat de la commande passée
  121. script.sh -h :
  122.     permet d'afficher le menu d'aide pour l'utilisation du script
  123.  
  124. Description des codes de sorties:
  125. 1 = il manque le parametre pour le script (silencieu/verbeau)
  126. 2 = le parametre n'est pas bon
  127. 3 = la connexion peut être établie, tout va bien, le réseau fonctionne à ce moment
  128. 4 = vous n'etes pas connectez a un reseau
  129. 5 = vous etes connecte a intenret, mais notre serveur local ne fonctionne pas
  130. 6 = vous n'etes pas connecte a intenret et notre serveur local ne fonctionne pas "
  131. }
  132.  
  133. case "$modeDexecution" in
  134.     "-s") modeSilencieu;;
  135.     "-v") modeVerbeau;;
  136.     "-h") manu;;
  137.        
  138.     *)
  139.         echo "Erreur!L'argument utilise n'est pas valid. RTFM ou utilisez --help"
  140.         exit 2;    
  141.         ;;     
  142. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement