Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/05/2017, à 11:17

Near3

[Résolu] Alarme quand pas de ping

Salut !

J'aimerais vous demander votre aide pour faire un petit programme, C++ ou bash (mais mes connaissances sont très limitées en bash), pour ping continuellement un serveur et lancer automatiquement une alarme dans le cas où la connexion avec ce serveur ne passe plus. S'il y a un logiciel Ubuntu tout fait pour ce genre de choses, je suis évidemment preneur. Sinon je prendrai tout conseil (librairie...) pour parvenir à mes fins ^^

Merci et bonne journée.

Dernière modification par Near3 (Le 03/05/2017, à 16:01)

Hors ligne

#2 Le 02/05/2017, à 11:25

krodelabestiole

Re : [Résolu] Alarme quand pas de ping

c'est une fonctionnalité très utilisée
ça s'appelle un watchdog

un ex. en bash :

#!/bin/bash

ip=192.168.1.2
mac=xx:xx:xx:xx:xx:xx

if ping -c 1 $ip &> /dev/null
then
        echo "server is up"
else
        echo "server is down, sending Wake On Lan"
        echo "server was down, Wake On Lan sent on $(date)" >> watchdog.log
        wakeonlan $mac
fi

en l'occurrence il envoie un wakeonlan mais tu peux aussi envoyer un mail ou autre.
tu peux le faire tourner avec cron toute les 5 min par ex.

Hors ligne

#3 Le 02/05/2017, à 16:59

Near3

Re : [Résolu] Alarme quand pas de ping

Salut, merci de ta réponse.

Je ne suis pas un expert mais ton code ne fonctionne qu'une seule fois, il n'y a aucune boucle, si ? En fait je voudrais faire ça pendant que je dors, donc les mails c'est pas top, je voudrais plutôt charger un fichier .mp3 par exemple ^^

J'ai regardé un peu watchdog ubuntu mais je n'ai pas trouvé de logiciel générique (c'est beau de rêver) qui répondrait à mon problème sad

Hors ligne

#4 Le 02/05/2017, à 17:15

krodelabestiole

Re : [Résolu] Alarme quand pas de ping

krodelabestiole a écrit :

tu peux le faire tourner avec cron toute les 5 min par ex.

https://doc.ubuntu-fr.org/cron

Hors ligne

#5 Le 02/05/2017, à 17:18

krodelabestiole

Re : [Résolu] Alarme quand pas de ping

et pour jouer un mp3 tu peux utiliser n'importe quel lecteur audio en ligne de commande à la place de la ligne "wakeonlan... "

Hors ligne

#6 Le 02/05/2017, à 19:59

krodelabestiole

Re : [Résolu] Alarme quand pas de ping

bon en gros tu enregistres ton script dans un fichier watchdog.sh , que tu rends executable (chmod +x watchdog.sh)
puis tu édites le job cron avec crontab -e
tu ajoutes cette ligne à la fin (en considérant que watchdog.sh est dans ton dossier utilisateur) :

*/5 * * * * ~/watchdog.sh

cron c'est vraiment le standard pour exécuter une tâche à intervalle régulier sur linux. ce sera bien mieux que n'importe quelle boucle dans un script.
*/5 en premier ça veut dire toute les 5 minutes. tu peux ajuster comme tu veux.

pour le script ça donne un truc du style :

#!/bin/bash

ip=192.168.1.2

if ping -c 1 $ip &> /dev/null
then
        echo "server is up"
else
        echo "server is down"
        vlc ton_fichier.mp3
fi

Hors ligne

#7 Le 03/05/2017, à 15:10

Near3

Re : [Résolu] Alarme quand pas de ping

Merci beaucoup pour ta réponse détaillée! Donc j'ai suivi tes instructions et en terminal j'ai fait ça:

lol@Wish:~$ crontab -e
no crontab for lol - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

Choose 1-4 [2]: 2
crontab: installing new crontab
lol@Wish:~$ 

Je suis tombé sur un nouveau fichier ne contenant que des commentaires (#), à l'adresse /tmp/crontab.Iy2BlX/crontab, et j'ai mis

*/5 * * * * ~/watchdog.sh

En dessous. Puis j'ai quitté en sauvegardant. smile

Mais du coup si je ferme tous mes terminaux, je serais curieux de savoir comment va se manifester la commande

echo "server is up"

En tout cas merci smile

Dernière modification par Near3 (Le 03/05/2017, à 15:14)

Hors ligne

#8 Le 03/05/2017, à 15:30

krodelabestiole

Re : [Résolu] Alarme quand pas de ping

ça va pas se manifester. les commandes echo là servent juste à tester le script manuellement.
par contre une commande comme

echo "server was down on $(date)" >> watchdog.log

permet d'enregistrer un journal des échecs du ping par ex. (dans le fichier ~/watchdog.log)

Hors ligne

#9 Le 03/05/2017, à 16:01

Near3

Re : [Résolu] Alarme quand pas de ping

Oh impeccable, merci beaucoup!

Apparemment "vlc audio.mp3" ne fonctionne pas depuis le fichier .sh, mais "cvlc audio.mp3" fonctionne. Merci encore, mon problème est complètement résolu.

Hors ligne