Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Détection des coupures réseaux
Auteur Message
Répondre en citant
Message Détection des coupures réseaux 
Bonjour à tous,

Tout d'abord un peu d'explication sur cette solution de détection des coupures réseaux :

BUT

Dans mon entreprise, aujourd’hui si une coupure réseau subvient sur les différentes machines de type IMAYECO, PCIEBEN ou serveur (Paris, Nantes), il n’y a aucune solution de mise en place permettant de signaler cette coupure par le biais d’une remontée d’alerte mail auprès du service informatique.

Alors j'ai décider de mettre en place un script automatisée garantissant la disponibilité des services des différentes machines avec remontées d’alerte.

Détail du processus d'utilisation

Le script vérifiera qu’il n’y a pas de coupure réseau sur ces différentes machines.

Le script viendra tout d’abord lire le fichier texte « PING_HOSTS.txt » où sera renseigné le nom d’hôte de chaque machine à surveiller ainsi que la catégorie de chaque hôte (LAN,PARIS,NANTES..).
Ensuite elle appellera chaque machine à partir de traitements en simultanés pour minimiser le temps d’exécution (commande "START").
Cela correspond aux sous-process qui demanderont aux machines si elles sont bien présentes sur le réseau.
Les sous-process seront de faible priorité.

Ce script sera exécutée par le biais d’une Tâche planifiée Windows qui sera exécuter toutes les 5 minutes.

A partir de cet appel, deux cas sont possibles :

Cas 1 : La machine appelée répond
Si la machine appelée répond, alors le sous-process d’appel de cette machine s’arrête et ce même sous-process redémarrera 5 minutes plus tard. En parallèle, les autres sous-process s’exécutent et si toutes les machines répondent, alors la solution redémarrera 5 minutes plus tard. Sinon voir cas 2.


Cas 2 : Une ou plusieurs des machines appelées ne répondent pas
Si une ou plusieurs des machines appelées ne répondent pas, la solution mis en place le signale automatiquement via son processus de remontée d’alerte en stipulant par mail : le nom d’hôte de chaque machines ne répondant pas ainsi que la date et l’heure de la perte de communication avec l’hôte. Ce mail sera automatiquement envoyé vers la boite mail : maintenance.informatique@xxx.fr .


On distingue 2 types de mail d’alerte :

Type 1 : La ou les machines qui ne répondent pas font parti du groupe LAN :
Dans ce cas le mail aura pour objet : Alerte: Perte de communication LAN
Dans ce mail sera détaillé le nom de la ou des machines qui ne répondent pas.
Le mail est généré à l'issue de tous les traitements simultanés (le processus principal attend la fin de tous les sous-process pour s'exécuter)


Type 2 : La ou les machines qui ne répondent pas, ne font pas parti du groupe LAN :
Dans ce cas le mail aura pour objet : Alerte: Perte de communication PARIS ou NANTES
Le lieu où la perte de communication à eu lieu peut très bien être différent de PARIS ou NANTES, ce lieu correspond à la catégorie de l’hôte qui est indiquer à la suite du nom d’hôte dans le fichier texte « PING_HOSTS.txt »
Dans ce mail sera détaillé le nom de la machine qui ne répond pas.


La catégorie LAN génère un mail global pour toutes les machines "LAN" qui ne répondent pas. Les autres catégories génèrent un mail par machine même si plusieurs d’entre elle sont de la même catégorie.
Si on a deux serveurs PARIS, il y aura 2 mails distincts.


Le processus redémarrera 5 minutes plus tard et renverra un mail automatiquement si le lien n’est pas rétabli.


Voici le liens de téléchargement pour le fichier texte où sont renseigner le nom d'hôte de chaque machines ainsi que leur groupe d’appartenance : http://www.sendspace.com/file/5e8p5x

Schéma algorithmique :

Un petit schéma pour vous aider à comprendre :




Mon problème


Venons-en au fait :

Je commence seulement le batch et voila déjà une journée que je bloque au niveau du FIND ou de l'ERRORLEVEL.
Si je rajoute le paramètre /C au FIND , alors j’obtiens pour chaque hôtes pinger un "0", ce qui stipule que le FIND à bien trouver "TTL".
Hors j'ai beau rentrer un nom d'hôte qui n'existe pas dans mon parc , exemple "ACOUNAMATATA" , mon FIND /C me renverra quand même "0" comme si il avait trouver le "TTL" alors que ce n'est pas possible. Mad


Code:


@ECHO OFF

:Processus_Controle_Presence

   FOR /F "tokens=1,2* delims=;" %%i in ('type PING_HOSTS.txt' ) DO (
   
   PING  %%i | Find "TTL" > NUL
   if %ErrorLevel%==0 | %%j=LAN echo %%i %date% %time:~,8% >> temp.txt

)   
   
PAUSE



J'espère avoir été assez claire Smile

Merci d'avance Wink




______________________________________________________
Cordialement
MARTIN TEDDY
SI PROJEVIA
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Détection des coupures réseaux 
Salut,

Je schématise à toi d'adapter à ton problème :

@
Code:
echo off&cls

:Processus_Controle_Presence

for /f "delims=" %%a in ('type Host.txt') do FOR /F "delims=" %%i in ('ping -n 1 %%a ^| find /i "reponse"' ) DO (echo %%a trouv‚) else (echo %%a pas trouvé)

PAUSE

Tu peux faire un test avec un HOST.TXT contenant :

Code:
tttttttt
www.google.com



Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Détection des coupures réseaux 
Bonjour,

Merci de ton aide Smile

Mais le problème persiste j'ai adapté cette solution à mon script :
Mais là rien ne se passe, la fenêtre DOS s'ouvre et se referme directement.

Code:

@echo off

:Processus_Controle_Presence

FOR /F "tokens=1,2* delims=;" %%a in ('type PING_HOSTS.txt')do FOR /F "delims=" %%i in ('PING -n 1 %%a ^| find /i "TTL"' ) DO (echo %%a trouv‚) else ( echo %%a pas trouvé)

PAUSE


Donc j'ai essayer avec le code que tu m'a donné et un fichier host.txt avec comme entrée : www.google.fr
Et là toujours le même problème :S


Dommage :s




______________________________________________________
Cordialement
MARTIN TEDDY
SI PROJEVIA
Répondre en citant
Message Détection des coupures réseaux 
Hello Mr. Green

Le problème étant que tu n'a pas de traitement conditionnel définit, donc ELSE fait tout capoté ^^




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message Détection des coupures réseaux 
Bonjour Smile

Je vois bien ce que tu dit mais je n'arrive pas à définir un traitement conditionnel pour ce script.

Je ne vois pas ou le mettre pour éviter que le ELSE fasse tout capoté.

Rolling Eyes NEED HELP




______________________________________________________
Cordialement
MARTIN TEDDY
SI PROJEVIA
Répondre en citant
Message Détection des coupures réseaux 
Après plusieurs test, j'ai décidé de contourner le problème du ELSE :


Code:

@echo off

:Processus_Controle_Presence

FOR /F "tokens=1,2* delims=;" %%a in ('type PING_HOSTS.txt')do FOR /F  "delims=" %%i in ('PING -n 1 %%a ^| find /i "TTL"' ) DO echo %%a;%%b>> HOSTS_OK.txt


findstr /i /v /g:HOSTS_OK.txt PING_HOSTS.txt >> BAD_HOSTS.txt


PAUSE



Cette solution fonctionne parfaitement. Okay
Je récupère donc les hôtes n'ayant pas été trouver sur le réseau dans mon fichier texte BAD_HOSTS.txt


Maintenant j'aimerais pouvoir lancer le PING sur toute les machines simultanément.
Je me suis renseigné sur la commande START mais lorsque j’insère la commande START juste avant mon ping, le script ouvre une fenêtre DOS par PING à la suite, alors que moi je veux que les PING se lancent tous en même temps.


HELP ME Rolling Eyes




______________________________________________________
Cordialement
MARTIN TEDDY
SI PROJEVIA
Répondre en citant
Message Détection des coupures réseaux 
Personne n'a d'idée ? Crying or Very sad




______________________________________________________
Cordialement
MARTIN TEDDY
SI PROJEVIA
Message Détection des coupures réseaux 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch