Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #######################
- # Createurs:
- # - Vlad Stefan Stamate
- # - Momo
- # Date: 21-09-2015
- # Nom: Devoir 1
- # Description:
- # 1. Tenter d'établir une connexion sur un serveur connu (pourquoi pas 8.8.8.8)
- # 2. Si la connexion peut être établie, tout va bien, le réseau fonctionne à ce moment
- # 3. Si le réseau est inaccessible, le script doit rapporter une erreur
- # 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
- ########################
- # methode d'execution
- # script.sh [modeDexecution]
- # Codes de retours:
- # Variables initiales
- notreServeur="8.8.8.8"
- autreServeur="8.8.4.4"
- fichierDesLogs="logs.txt"
- dateActuelle=$(date +"%d-%m-%Y - %T")
- compteur=0
- # on verifie les parametres
- if [ -z $1 ]; then
- # le script doit s'arreter. L'argument "verbeau" ou "silencieu" n'existe pas
- exit 1;
- fi
- # on lis le mode d'execution du script
- modeDexecution=$1
- modeVerbeau() {
- # Tenter d'établir une connexion sur un serveur connu (pourquoi pas 8.8.8.8)
- ping -w 5 $notreServeur # ping notre serveur interne sans rien afficher a l'ecran
- codeDeRetourPingNotreServeur=$? # on sauvegarde le code de retour dans une variable pour une future utilisation
- if [ $codeDeRetourPingNotreServeur = 0 ]
- then
- # la connexion peut être établie, tout va bien, le réseau fonctionne à ce moment.
- echo $dateActuelle " - On a pu communiquer avec" $notreServeur | tee -a $fichierDesLogs
- set -e
- exit 3;
- elif [ $codeDeRetourPingNotreServeur = 2 ]
- then
- # si le réseau est inaccessible, le script doit rapporter une erreur
- echo $dateActuelle " - Vous n'etes pas connectez a un reseau." | tee -a $fichierDesLogs
- for ((i=$compteur ; $compteur=5 ; compteur++))
- do
- ping -w 5 $notreServeur
- done
- exit 4;
- else
- # nous sommes connectes a un reseau, on va voir si un site connu nous repond
- ping -w 5 $autreServeur
- codeDeRetourPingAutreServeur=$?
- if [ $codeDeRetourPingAutreServeur = 0 ]
- then
- # nous avons access a internet, mais le serveur local ne repond pas
- echo $dateActuelle " - Vous etes connecte a intenret, mais notre serveur local ne fonctionne pas!" | tee -a $fichierDesLogs
- exit 5;
- else
- # nous n'avons pas access a internet et le serveur local ne repond pas
- echo $dateActuelle " - Vous n'etes pas connecte a intenret et notre serveur local ne fonctionne pas!" | tee -a $fichierDesLogs
- exit 6;
- fi
- fi
- }
- modeSilencieu() {
- # Tenter d'établir une connexion sur un serveur connu (pourquoi pas 8.8.8.8)
- ping -w 5 $notreServeur >> /dev/null # ping notre serveur interne sans rien afficher a l'ecran
- codeDeRetourPingNotreServeur=$? # on sauvegarde le code de retour dans une variable pour une future utilisation
- if [ $codeDeRetourPingNotreServeur = 0 ]
- then
- # la connexion peut être établie, tout va bien, le réseau fonctionne à ce moment.
- echo $dateActuelle " - On a pu communiquer avec" $notreServeur >> $fichierDesLogs
- set -e
- exit 3;
- elif [ $codeDeRetourPingNotreServeur = 2 ]
- then
- # si le réseau est inaccessible, le script doit rapporter une erreur
- echo $dateActuelle " - Vous n'etes pas connectez a un reseau." >> $fichierDesLogs
- exit 4;
- else
- # nous sommes connectes a un reseau, on va voir si un site connu nous repond
- ping -w 5 $autreServeur > /dev/null
- codeDeRetourPingAutreServeur=$?
- if [ $codeDeRetourPingAutreServeur = 0 ]
- then
- # nous avons access a internet, mais le serveur local ne repond pas
- echo $dateActuelle " - Vous etes connecte a intenret, mais notre serveur local ne fonctionne pas!" >> $fichierDesLogs
- exit 5;
- else
- # nous n'avons pas access a internet et le serveur local ne repond pas
- echo $dateActuelle " - Vous n'etes pas connecte a intenret et notre serveur local ne fonctionne pas!" >> $fichierDesLogs
- exit 6;
- fi
- fi
- }
- manu () {
- echo "
- 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
- voici la syntaxe de l'utilisation du script
- script.sh -s :
- permet de tester la connexion en mode silencieux sans afficher le resultat de la commande
- script.sh -v :
- permet de tester la connexion en verbose en affichant chaque resultat de la commande passée
- script.sh -h :
- permet d'afficher le menu d'aide pour l'utilisation du script
- Description des codes de sorties:
- 1 = il manque le parametre pour le script (silencieu/verbeau)
- 2 = le parametre n'est pas bon
- 3 = la connexion peut être établie, tout va bien, le réseau fonctionne à ce moment
- 4 = vous n'etes pas connectez a un reseau
- 5 = vous etes connecte a intenret, mais notre serveur local ne fonctionne pas
- 6 = vous n'etes pas connecte a intenret et notre serveur local ne fonctionne pas "
- }
- case "$modeDexecution" in
- "-s") modeSilencieu;;
- "-v") modeVerbeau;;
- "-h") manu;;
- *)
- echo "Erreur!L'argument utilise n'est pas valid. RTFM ou utilisez --help"
- exit 2;
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement