Récupérer la valeur du ping sur linux (.sh)

Larniel -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

Je souhaite programmer un raspberry pour qu'il "débranche" une prise si une un appareil s'éteint. Pour cela je veux le ping toutes les 10 secondes et vérifier le résultat. Comment, avec un fichier .sh, est-il possible de récupérer la valeur (et pas le "time=") du ping?

2 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     

    Bonjour,

    (mando@silk) (~) $ ping -c2 localhost
    PING localhost(localhost (::1)) 56 data bytes
    64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.023 ms
    64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.026 ms
    
    --- localhost ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1021ms
    rtt min/avg/max/mdev = 0.023/0.024/0.026/0.001 ms
    

    Qu'appelles tu la valeur d'un ping dans ce résultat ?

    Par exemple si c'est la valeur entière 1021 (dans time 1021ms) que tu veux extraire :

    ping -c2 localhost | grep -oE "time [0-9]+ms" | sed -e 's/time \([0-9]*\)ms/\1/'

    Tu peux aussi t'en sortir avec awk si tu préfères.

    Bonne chance

    0
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       

      Plus simple :

      if ping -c 1 <TonIP> &> /dev/null
      then
           echo Ok
      else
           echo NOK
      fi
      0
      1. Larniel Messages postés 2 Statut Membre > NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention  
         

        Ok! Et est-il possible de faire la même chose avec le bluetooth ?

        0
      2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944 > NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention  
         

        Il n'y a pas pour autant que je sache d'équivalent de ping pour bluetooth. En admettant que ce qui t'intéresse soit de lister les devices qui répondent (et pas le délai) je suppose que la commande que tu cherches est :

        bluetoothctl paired-devices

        ... quitte à compléter avec :

        bluetooth info DEVICE

        ... en remplaçant DEVICE par l'identifiant du device à tester.

        Voir aussi ce lien.

        0
  2. Larniel Messages postés 2 Statut Membre
     

    Ce que je cherche à savoir c'est si le raspberry est connecté ou non. De ce que j'ai compris, il existe une commande qui renvoie 1 ou 2 suivant si le ping a aboutit ou non.

    0