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

Répondre à