Le 20/05/2014 11:07, Olivier a écrit : > Bonjour, > > Je souhaite surveiller la disponibilité d'une quinzaine de liens > ADSL. > > Par "surveiller la disponibilité", j'entends: - faire un simple > ping (ou équivalent) sur l'IP externe de chaque lien ADSL (chacun a > une IP externe fixe) toutes les 5 mn, par exemple, - conserver la > réponse dans une base de données idoine, - si le ping échoue > (critère à préciser) alors que le précédent avait réussi m'alerter > (par un canal à préciser parmi l'email, le SMS ou autre), - si le > ping réussi alors que le précédent avait échoué m'alerter. > > J'imaginai rédiger un script (en Python ou bash) qui > lirait-écrirait dans une base RRD mais je suis ouvert à toute > suggestion. > > > Que conseillez-vous ? > > Slts >
Chez moi une paire de scripts Perl qui fait une comparaison de timestamp et un transfert de fichier témoin avec rsync, chaque script lancé par une tâche cron. Si le lien tombe çà me passe un appel téléphonique (un 3eme script). C'est du bidouillage maison mais je n'avais besoin de rien de plus. ============================================== Sur une machine derrière le lien à surveiller: ============================================== Crontab: */2 * * * * /home/XXX/bin/sendAliveMsg.pl SCRIPT SendAliveMsg.pl: #------------------------------------------------------------------------------ use 5.10.0; use warnings; use strict; #------------------------------------------------------------------------------ my $fichier = $ENV{PWD}. '/temoin'; my $now = time(); say $now; #------------------------------------------------------------------------------ open my $handle, '>', $fichier or die qq{Impossible d'ouvrir $fichier\n}; print $handle $now."\n"; close $handle; #------------------------------------------------------------------------------ my $sshKey = $ENV{PWD}."/.ssh/id_rsaXXX"; my $sshPort = 22; my $cible = 'machinedesurveillance.exemple.com'; my $rsyncCmd = "rsync -avP" ." -e 'ssh -i $sshKey -p $sshPort'" ." $fichier" ." $cible:"; say $rsyncCmd; exec $rsyncCmd; #------------------------------------------------------------------------------ =============================== Sur la machine de surveillance: =============================== Crontab: */3 * * * * killall /home/XXX/bin/call.pl */3 * * * * /usr/bin/perl -E 'system "/home/XXX/bin/call.pl 06xxxxxxxx" if `/home/XXX/bin/ageLastSignal.pl /home/XXX/temoin` > 190' SCRIPT ageLastSignal.pl: #!/usr/bin/perl #------------------------------------------------------------------------------ use 5.10.0; use warnings; use strict; #------------------------------------------------------------------------------ my $fichier = shift @ARGV; my $now = time(); #------------------------------------------------------------------------------ my $timeTemoin; open my $handle, '<', $fichier or die qq{Impossible d'ouvrir $fichier\n}; while (my $ligne = <$handle>) { #say "ligne: $ligne"; chomp $ligne; $timeTemoin = $ligne; } close $handle; #------------------------------------------------------------------------------ my $ecart = $now - $timeTemoin; print $ecart; #;if $ecart > $delai; #------------------------------------------------------------------------------ -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org Archive: https://lists.debian.org/537b2beb.2010...@desrues.org