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 :

Une solution de script Shell sous Win pour tester les ping et telnet sur multi_site [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2015
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 61
    Par défaut Une solution de script Shell sous Win pour tester les ping et telnet sur multi_site
    Bonjour,

    Je me permet de vous écrire suite a un blocage de plusieurs jour pour résoudre le problème pour mon script je viens de commencer sur shell :

    Le principe de ce code est de faire un :

    - Test sur :
    * ping GOOGLE.FR et test.FR
    * telnet test 10050
    * telnet localhost 20150

    - et afficher le hostname et le SID(Security Identifiers) de la machine windows.

    >> Résultat souhaité : pour le ping et telnet : résultat doit afficher si le test de ping est bon alors afficher "success" sinon afficher "failed", même prince pour telnet .

    Une fois mon code s’exécute doit m'envoyer des fichiers de log à un chemin précis à déclarer, ainsi doit m'envoyer un rapport de résultat par email si c'est possible.

    Je demande un retour d'expérience svp . Merci pour vos retour.

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Billets dans le blog
    2
    Par défaut
    La commande curl me parait tout indiquée.

    http://curl.haxx.se/download.html
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

  3. #3
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut

    Pouvez-vous poster le code que vous avez testé jusqu'à maintenant ?

  4. #4
    Membre confirmé
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2015
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 61
    Par défaut
    Bonjour,

    merci pour ta réponse:

    Voici le code que j'ai fais, mais ça fonctionne pas

    Code:

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     @echo off 
    for /L %%a in (1,1,1000) do ( 
         ( 
              echo %date% %time% 
              ping -n 6 www.code42.fr
              ping -n 6 www.google.fr
         ) >> rapport.txt
    )

    j'ai fait ça aussi, mais j'ai l'air de faire n'importe quoi :/

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @ECHO OFF 
    TITLE Test la connexion %USERNAME% 
    ECHO Test la connexion... 
    FOR /F "TOKENS=2,* DELIMS=[]" %%A IN ('PING www.google.fr -n 4 ^| FIND /I "envoi"') 
    DO ( 
              CLS 
              ECHO %%A - www.google.fr 
              ECHO Information :
              ECHO Ping [OK] 
              ECHO Internet [OUI] ) 
    PAUSE>NUL

    Merci pour ton retour.

  5. #5
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par hackmed Voir le message
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     @echo off 
    for /L %%a in (1,1,1000) do ( 
         ( 
              echo %date% %time% 
              ping -n 6 www.code42.fr
              ping -n 6 www.google.fr
         ) >> rapport.txt
    )
    Ce code produit 1000 ping avec 6 requête ECHO soit 6000 requête ECHO par domaine. Je vois pas a quoi ça te mène, il est même possible (selon la config du(es) seveur(s)), au bout d'un certain nombre de requête, que le domaine ne réponde volontairement pas.

    Citation Envoyé par hackmed Voir le message
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off 
    titleTest la connexion %UserName% 
    echo Test la connexion... 
    for /f "tokens=2 delims=[]" %%A in('ping www.google.fr -n 4 ^| find /i "envoi"') do ( 
              cls
              echo %%A - www.google.fr 
              echo Information :
              echo Ping [OK] 
              echo Internet [OUI] ) 
    pause>nul
    ce code récupère l'IP du serveur google sur lequel tu ping: aucun intérêt.

    J'ai fait ce code pour rechercher la MTU maximale, il date un peu et n'est pas terrible mais tu peux t'en servir comme base.

    Code bat : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    @echo off
    setlocal enabledelayedexpansion
     
     
    set "OutputInterface="
    set "ProtocolVersion="
     
    set "TCP_IPv4_HeaderSize=28"
    set "Minimum_IPv4_MTU=68"
    set "Maximum_IPv4_MTU=9000"
     
    set "TCP_IPv6_HeaderSize=28"
    set "Minimum_IPv6_MTU=1280"
    set "Maximum_IPv6_MTU=9000"
     
    :ParsingArgs
    if "%~1"=="" goto Init
    if /i "%~1"=="/4" (
        set "ProtocolVersion=4"
        shift /1
        goto ParsingArgs
    )
    if /i "%~1"=="/6" (
        set "ProtocolVersion=6"
        shift /1
        goto ParsingArgs
    )
    if /i "%~1"=="/target" (
        set "TargetIp=%~2"
        shift /1
        shift /1
        goto ParsingArgs
    )
    if /i "%~1"=="/interface" (
        set "OutputInterface=%~2"
        shift /1
        shift /1
        goto ParsingArgs
    )
    if /i "%~1"=="/?" goto Help
    if /i "%~1"=="-?" goto Help
    if /i "%~1"=="/h" goto Help
    if /i "%~1"=="-h" goto Help
    if /i "%~1"=="/help" goto Help
    if /i "%~1"=="-help" goto Help
    :BadSyntaxe
    for /f "delims=" %%a in ('net helpmsg 4342') do set "Error=%%a"
    for /f "delims=" %%a in ('net helpmsg 87') do set "InvalidParams=%%a"
    echo [!Error!]    !InvalidParams:~0,-1!: %~1
    exit /b 87
    :Init
    if not defined OutputInterface (
        echo.
        echo Recherche de la route vers le système cible ...
        echo.
        ping %TargetIp%>nul
        set "UsedInterface="
        set "UsedInterface_TTL="
        for /f "delims=" %%a in ('arp -a') do (
            for /f "tokens=1-2 delims=:- " %%A in ("%%a") do (
                set "fix=%%A"
                if /i "!fix:~0,-1!"=="Interface" (
                    set "Interface=%%B"
                )
            )
            for /f "tokens=1-3 delims= " %%A in ("%%a") do (
                if /i "%%A"=="%TargetIp%" (
                    if not defined UsedInterface (
                        set "UsedInterface=!Interface!"
                        for /f "skip=2 delims=" %%b in ('ping -n 1 %TargetIp%') do (
                            for /f "delims= " %%B in ("%%b") do (
                                if /i "%%B"=="Réponse" (
                                    for /f "tokens=4 delims==" %%c in ("%%b") do (
                                        set /a "UsedInterface_TTL=256 - %%c"
                                    )
                                )
                            )
                        )
                    ) else (
                        for /f "skip=2 delims=" %%b in ('ping -n 1 %TargetIp%') do (
                            for /f "delims= " %%B in ("%%b") do (
                                if /i "%%B"=="Réponse" (
                                    for /f "tokens=4 delims==" %%c in ("%%b") do (
                                        set /a "fix=256 - %%c"
                                        if !fix! LSS !UsedInterface_TTL! (
                                            set "UsedInterface=!Interface!"
                                            set /a "UsedInterface_TTL=!fix!"
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )
    if not defined UsedInterface (
        echo Impossible de définir de route vers %TargetIp%. Vérifier que les cables réseaux sont correctements branchés et que l'appareillage actif est allimenté.
        echo.
        exit /b 1
    ) else (
        echo Interface=!UsedInterface!  Jump=!UsedInterface_TTL!
        echo.
    )
    if not defined ProtocolVersion (
        for /f "tokens=1-4 delims=." %%a in ("%TargetIp%") do (
            if not "%%B"=="" (
                set "ProtocolVersion=4"
            ) else (
                set "ProtocolVersion=6"
            )
        )
    )
    :Exec
    if not exist "%cd%\Stat\" md "%cd%\Stat"
    echo.
    echo Recherche de la limite supérrieur de la MTU, merci de patienter ...
    echo.
    if %ProtocolVersion% EQU 4 (
        set "Limit="
        for /l %%a in (%Minimum_IPv4_MTU% 1 %Maximum_IPv4_MTU%) do (
            if "!Limit!"=="" (
                set /a "MSS=%%a - %TCP_IPv4_HeaderSize%"
                for /f "skip=2 delims=" %%A in ('ping -n 1 -f -l !MSS! -4 -S !UsedInterface! %TargetIp%') do (
                    echo %%A|(1>nul find /i "Le paquet doit être fragmenté mais paramétré DF.")
                    if not errorlevel 1 set /a "Limit=%%a - 1"
                )
            )
        )
    ) else if %ProtocolVersion% EQU 6 (
        ping -n 10 -f -l %Default_IPv6_MTU% -6 -S !UsedInterface! %TargetIp%
    )
    echo MaxMTU=!Limit!
    echo.
    echo.
    exit /b 0
    :Help
    echo.
    echo Usage: %~nx0 /target ^<ip_target^> [/4^|/6] [/interface ^<ip_interface^>]
    echo        %~nx0 /?^|-?^|/h^|-h^|/help^|-help
    echo.
    echo     /target ^<ip_target^>          Addresse IP du système distant.
    echo     /4^|/6                        Version du protocole IP.
    echo     /interface ^<ip_interface^>    Addresse IP de l'interface locale.
    echo     -?^|/?^|/h^|-h^|/help^|-help      Affiche cette aide.
    echo.
    exit /b 0

    Et pour l'url, il faut regarder en bas de la page pour les downloads Windows. Lit la doc, tu comprendras mieux: http://curl.haxx.se/docs/
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

  6. #6
    Membre confirmé
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2015
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 61
    Par défaut
    Merci bcp, pour les explications, je vois un peu quand tu m'a expliqué ces codes la, parce que je les ai chopé sur le net, j'ai modifié mais je ne comprend pas à ce je fais .

    Mon but c'est de faire un ping sur 2 sites google.fr et test.fr , et j'aurai comme résultat success ou failed .

    J'ai resté 1 semaine avec sans résoudre le problème

    J t'en remercie comme même, je vais essayer de voir ton code même si sa l'air compliqué parce que c'est niveau avancée. moi je suis encore débutant en shell.

  7. #7
    Membre confirmé
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mai 2015
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 61
    Par défaut
    Bonjour,

    à Quoi sert ce site est ce que y'a des package à télécharger ou quoi j'ai rien compris ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. avez-vous une solution Action script (exemple à l'appuie)
    Par lokis dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 12/01/2007, 16h42
  2. Script shell sous unix
    Par taroudant dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 21/11/2006, 12h32
  3. Conversion d'une procédure du script shell vers le batch dos
    Par marlenjp dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/10/2006, 14h42
  4. Réponses: 2
    Dernier message: 14/09/2006, 23h35
  5. Problème script shell sous ksh
    Par suya95 dans le forum Linux
    Réponses: 2
    Dernier message: 01/09/2006, 09h05

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