IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Création d'un script d'alerte


Sujet :

Scripts/Batch

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut Création d'un script d'alerte
    Bonjour je suis actuellement Etudiant en BTS SIO. Dans le cadre d'un de mes projets, je dois créer un script d'alerte qui me permet (Si un serveur est down) d'avertir l'administrateur du réseau et enregistrer les logs dans un fichier.

    Je viens en aide vers vous car le scripting n'est pas du tout mon fort (je suis plus axé supervision, routeur..), merci de bien vouloir m'aider.
    Bonne journée.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Tourne toi vers Powershell et propose nous quelque chose

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    Je dois partir sur du batch obligatoirement, mon professeur me la impose

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    La notion de serveur est plutôt large, quel type de serveur dois-tu surveiller ?

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    Je dois juste vérifier que mes deux serveurs web et mon serveur HAProxy soit up donc jusque là avec un ping sa devrait suffire mais je ne sais pas du tout comment formulé sa en script (en fessant une boucle mais je sais pas comment faire) et surtout que l'administrateur doit etre informé..

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Vu qu'il s'agit de serveurs web, je n'utiliserais pas PING car ce n'est pas très fiable, je ferais directement une requête HTTP via la commande externe CURL, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl -I -L -k -s https://google.fr | find "HTTP" | findstr "403 404 500 503 504" && echo serveur DOWN
    Concernant HTTP, les codes d'erreur sont disponibles ici : https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP.

    Pour informer l'administrateur, tu peux lui envoyer un mail via une commande externe, personnellement j'utilise SwithMail disponible ici : https://www.tbare.com/software/swithmail/

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    D'accord merci beaucoup de ton aide, aurait tu une idée de comment je pourrais faire ma boucle (pour tester mes 3 serveurs) pour ensuite renvoyé les résultats dans un autre fichier ?

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Voilà un exemple :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @echo off
    chcp 28591 >nul
    setlocal enableextensions enabledelayedexpansion
     
    set log=rapport.txt
     
    set URL1=https://google.fr
    set URL2=https://amazon.fr
    set URL3=https://microsoft.fr
     
    echo. > %log%
     
    for /L %%A in (1,1,3) do (
    	curl -I -L -k -s !URL%%A! | find "HTTP" | findstr "403 404 500 503 504" && echo !URL%%A! ==^>^> serveur DOWN || echo !URL%%A! ==^>^> aucun problème détecté
    ) >> %log%
     
    pause
     
    exit /b 0

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    Merci j'essayerais tous sa ce soir je te tiens au courant

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    Salut je viens d'essayer ton script pour voir si il marchait mais rien du tout, sa me créer bien le fichier mais je n'ai rien dans le fichier

  11. #11
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    En trifouillant un peu sur le web j'ai réussi a trouver différentes choses, j'ai trouver un script qui permet de ne lister que les adresses ou le ping ne fonctionne pas je vous donne le code :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for /F "tokens=*" %%I in (adrip.txt) do call :test %%I 
    goto :end 
     
    :test 
    Ping %1 
    IF ERRORLEVEL == 1 ECHO %1 >> BADIP.txt 
    goto :eof 
     
    :end


    Je voudrais maintenant le rendre automatique si possible !

  12. #12
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Ca ne marche pas parce que tu n'as pas installé la commande CURL, elle est disponible sur le site de l'auteur (tout en bas de la page) : https://curl.haxx.se/download.html

  13. #13
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    PING ne permet pas de détecter si un vhost est DOWN, ce n'est pas parce que le serveur web va répondre au ping que ton site fonctionne, j'ai personnellement le cas avec un de mes vhosts, c'est pour ça qu'il vaut mieux utiliser CURL.

  14. #14
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    Bonjour a toi, le problème est que je dois vérifier si ils sont up et pas down (la machine en elle meme pas le service web) mais j'ai aussi un serveur HAProxy et la il n'y a pas de http..

  15. #15
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Ok pour ping. Le code que tu as trouvé a l'air correct, qu'est-ce que tu entends par "le rendre automatique" ?

    Tu peux le faire tourner en boucle (et rajouter une petite temporisation) ou bien tu peux le lancer à intervalles réguliers à l'aide du planificateur de tâches.

  16. #16
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    Je voudrais qu'il s'exécute toutes les x minutes et je voudrais aussi autre chose, faire un fichier qui garde toutes les machines down et un autre qui garde les machines down jusqu'à la prochaine boucle (en gros supprimer les anciennes valeurs)

  17. #17
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Voilà ce que ça donne :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
     
    echo. > BADIP.txt
     
    for /F "tokens=*" %%I in (adrip.txt) do call :test %%I
    type BADIP.txt >> log.txt
     
    exit /B 0
     
    :test
    Ping %1
    IF ERRORLEVEL == 1 ECHO %1 >> BADIP.txt
    goto :eof

    Tu n'as plus qu'à créer une tâche via le gestionnaire de tâches pour exécuter le script toutes les x minutes.

    Le fichier BADIP contient les machines DOWN et est remis à zéro à chaque lancement du script.
    Le fichier log.txt contient tout l'historique des machines DOWN, il n'est jamais remis à zéro.

  18. #18
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    Wow merci j'aurais encore une autre question je voudrais qu'il y ait la date ainsi que l'heure mais je ne sais pas si c'est possible

  19. #19
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Oui c'est possible :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    @echo off
     
    echo. > BADIP.txt
     
    for /F "tokens=*" %%I in (adrip.txt) do call :test %%I
    type BADIP.txt >> log.txt
    exit /B 0
     
    :test
    set hh0=%time:~0,2%
    set hh1=0%hh0%
    set heure=%hh1:~-2%h%time:~3,2%
     
    set jour=%date:~6,4%%date:~3,2%%date:~0,2%
     
    Ping %1
    IF ERRORLEVEL == 1 ECHO %jour%_%heure : %1 >> BADIP.txt
    goto :eof

  20. #20
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 12
    Par défaut
    Merci beaucoup, je viens d'essayer mais l'heure ne s'affiche pas dans le fichier

Discussions similaires

  1. création d'un script SQL
    Par CaRu15 dans le forum MS SQL Server
    Réponses: 20
    Dernier message: 11/06/2007, 08h29
  2. Réponses: 2
    Dernier message: 20/04/2007, 14h28
  3. Création d'un script pr l'ajout d'un URL
    Par esteb dans le forum VBScript
    Réponses: 1
    Dernier message: 31/01/2007, 10h13
  4. création ancre dans script
    Par chicho dans le forum VBScript
    Réponses: 3
    Dernier message: 13/09/2006, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo