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

Shell et commandes GNU Discussion :

Script pour effectuer des pings suivant une liste


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Par défaut Script pour effectuer des pings suivant une liste
    Bonjour,

    Pourriez-vous m'aider à faire un script afin de pinger des IP (environ 150) à partir d'une liste.
    J'enregistrerai les résultats dans un fichier csv ou attaquerai directement une base mysql distante.

    exemple :
    192.168.0.1 OK
    192.168.0.2 KO

    Merci d'avance à vous
    Nicolas

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Salut,

    y a pas beaucoup de précisions, du coup je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read adresse
    do
      ping -c 3 ${adresse} && echo "${adresse} ok" || echo "${adresse} ko"
    done < ListeIP.txt >> AdressesPingées.txt

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Par défaut
    Bonjour hizoka, merci beaucoup pour le script.

    J'ai oublié de préciser que j'étais débutant en script shell :/

    J'ai ce message d'erreur , en root :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chmod +x ping.sh
    ./ping.sh
    -bash: ./ping.sh: /bin/bash^M: bad interpreter: No such file or directory
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #! /bin/bash
    while read adresse
    do
      ping -c 3 ${adresse} && echo "${adresse} ok" || echo "${adresse} ko"
    done < ListeIP.txt >> AdressesPingees.txt
    echo "ok"
    exit 0
    J'ai bien créé les 2 fichiers txt.

    Merci pour votre aide

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    sans espace normalement.

    le fichier ListeIP.txt doit contenir une liste d'ip (et uniquement ça) 1 par ligne.

    inutile de creer AdressesPingees.txt qui est créé automatiquement si besoin.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 666
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -bash: ./ping.sh: /bin/bash^M: bad interpreter: No such file or directory
    ça, ça a été écrit sur W$.

    il faut le convertir au format UNIX.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Par défaut
    Ca ne fonctionnait toujours pas.
    J'ai refais le script sous linux directement et c'est passé.

    Voici le résultat pour 2 IP :
    PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
    64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.018 ms

    --- 127.0.0.1 ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.018/0.018/0.018/0.000 ms
    127.0.0.1 ok
    PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

    --- 192.168.0.1 ping statistics ---
    1 packets transmitted, 0 received, 100% packet loss, time 0ms

    192.168.0.1 ko
    Merci hizoka ! C'est bien ce que je recherchais.

    Du coup ma recherche va se préciser ;-)
    Je n'ai pas besoin du rapport du ping, juste comme cela (avec des points virgules, ça me permettra de le mettre en bdd) :
    192.168.0.1;KO
    127.0.0.1;OK
    Merci infiniment.
    Par contre le fait de faire 2 ping prend un petit peu de temps, j'ai peur pour mes 150 pings...

    Bonne soirée

    NB : N_BaH, j'ai vu ton message trop tard, j'ai vite trouvé le souci sur google avec le message d'erreur. Oui effectivement , le problème venait bien de ça ! Merci.

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    C'est ça que tu veux ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #! /bin/bash
    NbTest=3
    while read adresse
    do
      ping -c ${NbTest} ${adresse} &>/dev/null && echo "${adresse};ok" || echo "${adresse};ko"
    done < ListeIP.txt >> AdressesPingees.txt
    echo "ok"
    exit 0
    j'ai ajouté une variable pour choisir le nombre de ping à réaliser par IP.
    j'ai remplacé l'espace avant ok/ko par un ;
    les retours de pings ne sont plus visibles.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par nicoreims Voir le message
    J'ai refais le script sous linux directement et c'est passé.

    NB : N_BaH, j'ai vu ton message trop tard, j'ai vite trouvé le souci sur google avec le message d'erreur. Oui effectivement , le problème venait bien de ça ! Merci.
    Juste pour information, tu peux soit:
    • écrire le script sous linux
    • écrire le script sous W$ puis utiliser la commande dos2unix (ou un bon tr ou sed)
    • si tu utilises NotePad++ sous W$, le configurer pour qu'il mette des fins de ligne pour linux/unix

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

Discussions similaires

  1. [XL-2013] Script pour mettre des données sur une même ligne
    Par initial32 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/12/2014, 13h45
  2. Script pour trouver des blocs dans un listing
    Par rambc dans le forum Général Python
    Réponses: 7
    Dernier message: 06/01/2012, 08h43
  3. Script pour créer des utilisateurs virtuels à une application J2EE
    Par abdimen dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 27/04/2011, 13h52
  4. [BATCH]script pour encoder des fichiers dans une arborescence
    Par ashgan44 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 11/05/2009, 15h04
  5. script pour effectuer un ping sur unr ip
    Par justaf dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/02/2007, 13h17

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