[PERL]Réseaux
Fermé
Stéphanie
-
2 nov. 2006 à 18:12
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 12 nov. 2006 à 19:30
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 12 nov. 2006 à 19:30
A voir également:
- [PERL]Réseaux
- Denon perl pro test - Accueil - Audio
- Sandra a décidé de mieux contrôler son image et sa présence sur différents réseaux sociaux. qu’est-il possible de faire sur ces réseaux ? - Forum Études / Formation High-Tech
- Problème réseaux - Forum WiFi
- Frédéric cherche à faire le buzz sur les réseaux sociaux. il a ajouté une image de manchots sur une image de plage. retrouvez l'image originale de la plage. que cachent les manchots ? - Forum Graphisme
- Comment ca marche les liens miniatures sur les réseaux sociaux - Forum Réseaux sociaux
56 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
2 nov. 2006 à 22:12
2 nov. 2006 à 22:12
J'ai ajouté dans le fichier de configuration localhost et un ip depuis mon LAN
1. le fichier de configuration
1. le fichier de configuration
# la frequence dont le daemon execute les testes # Ex : Frequenci NN # frequency insensible à la case # NN nombre de secondes frequency 10 # vérification de la connexion # faire un ping vers une machine (locale ou distante) local.ping localhost remote.ping 192.168.1.22. le script modifié
#!/usr/bin/perl use warnings;use strict; use POSIX; use Time::HiRes; use Net::Ping; my $ping = Net::Ping->new(); my ($local,$remote); my $freq; my ($localhost,$remotehost); my $ip = qr/(?:\d{1,3}\.){3}\d{1,3}/; # fichier de configuration open CONFIG,"/etc/mon_daemon.conf" or die "E/S : $!\n"; while (<CONFIG>){ # on saute les commentaires next if /^#/; # je recupere la frequence $freq=$1 if /frequency\s*(\d+)/i; # je recupere l'hôte locale $localhost = $1 if /local\.ping\s*(\w+)/i; # je recupere l'hôte distante à vérifiier $remotehost = $1 if /remote\.ping\s*($ip)/i; } # exécution de script en tant que daemon # my $pid=fork; exit if $pid; die "fork impossible : $!" unless defined($pid); POSIX::setsid() or die "Pas de nouvelle session : $!\n"; my $kill_pid = 0; sub gestion_signaux { $kill_pid = 1; } $SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&gestion_signaux; # les taches que le daemon exécute # chaque 10 secondes il va écrire # dans /var/log/log.daemon # dans le format #jj/mm/yyyy hh:mm:ss daemon fonctionne #jj/mm/yyyy hh:mm:ss localhost en vie # until ($kill_pid) { # calcule la date et l'heure du teste # pour affichage dans journal my ($s,$mm,$h,$j,$m,$y) = (localtime)[0..5]; $j = sprintf("%02d",$j); $m = sprintf("%02d",$m +=1); $y +=1900; $s = sprintf("%02d",$s); $mm = sprintf("%02d",$mm); $h = sprintf("%02d",$h); my $date = "$j/$m/$y $h:$mm:$s"; open DAEMON,">> /var/log/log.daemon" or die "E/S : $!\n"; if ($ping->ping($localhost)){ $local = "$date $localhost en vie"; } if ($ping->ping($remotehost)){ $remote = "$date $remotehost en vie"; } print DAEMON "$date daemon fonctionne\n$local\n$remote\n"; sleep($freq); }3. le journal /var/log/log.daemon
02/11/2006 23:10:26 daemon fonctionne 02/11/2006 23:10:26 localhost en vie 02/11/2006 23:10:26 192.168.1.2 en vie 02/11/2006 23:10:36 daemon fonctionne 02/11/2006 23:10:36 localhost en vie 02/11/2006 23:10:36 192.168.1.2 en vie 02/11/2006 23:10:46 daemon fonctionne 02/11/2006 23:10:46 localhost en vie 02/11/2006 23:10:46 192.168.1.2 en vie 02/11/2006 23:10:56 daemon fonctionne 02/11/2006 23:10:56 localhost en vie 02/11/2006 23:10:56 192.168.1.2 en vie 02/11/2006 23:11:06 daemon fonctionne 02/11/2006 23:11:06 localhost en vie 02/11/2006 23:11:06 192.168.1.2 en vielami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
2 nov. 2006 à 21:20
2 nov. 2006 à 21:20
Salut,
voilà un début
le script s'exécutera en tant que daemon
il faut être root pour l'exécuter
1. j'ai créer un fichier de configuration mon_daemon.conf dans /etc
Voici le contenu
2. le script daemon.pl
Le daemon va écrire tous les 10 secondes dans /var/log/log.daemon
jj/mm/yyyy hh:mm:ss daemon fonctionne
jj/mm/yyyy hh:mm:ss localhost en vie
dans le fichier de configuration tu peux changer la fréquence de test
lami20j
voilà un début
le script s'exécutera en tant que daemon
il faut être root pour l'exécuter
1. j'ai créer un fichier de configuration mon_daemon.conf dans /etc
Voici le contenu
# la frequence dont le daemon execute les testes # Ex : Frequenci NN # frequency insensible à la case # NN nombre de secondes frequency 10
2. le script daemon.pl
Le daemon va écrire tous les 10 secondes dans /var/log/log.daemon
jj/mm/yyyy hh:mm:ss daemon fonctionne
jj/mm/yyyy hh:mm:ss localhost en vie
#!/usr/bin/perl use warnings;use strict; use POSIX; use Time::HiRes; use Net::Ping; my $ping = Net::Ping->new(); my $resultat; my $freq; # fichier de configuration open CONFIG,"/etc/mon_daemon.conf" or die "E/S : $!\n"; while (<CONFIG>){ # on saute les commentaires next if /^#/; # je recupere la frequence $freq=$1 if /frequency\s*(\d+)/i; } # exécution du script en tant que daemon # my $pid=fork; exit if $pid; die "fork impossible : $!" unless defined($pid); POSIX::setsid() or die "Pas de nouvelle session : $!\n"; my $kill_pid = 0; sub gestion_signaux { $kill_pid = 1; } $SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&gestion_signaux; # les taches que le daemon exécute # chaque 10 secondes il va écrire # dans /var/log/log.daemon # dans le format #jj/mm/yyyy hh:mm:ss daemon fonctionne #jj/mm/yyyy hh:mm:ss localhost en vie # until ($kill_pid) { # calcule la date et l'heure du teste # pour affichage dans journal my ($s,$mm,$h,$j,$m,$y) = (localtime)[0..5]; $j = sprintf("%02d",$j); $m = sprintf("%02d",$m +=1); $y +=1900; $s = sprintf("%02d",$s); $mm = sprintf("%02d",$mm); $h = sprintf("%02d",$h); my $date = "$j/$m/$y $h:$mm:$s"; open DAEMON,">> /var/log/log.daemon" or die "E/S : $!\n"; if ($ping->ping("localhost")){ $resultat = "$date localhost en vie\n"; } print DAEMON "$date daemon fonctionne\n$resultat"; sleep($freq); }3. le fichier /var/log/log.daemon
02/11/2006 22:15:34 daemon fonctionne 02/11/2006 22:15:34 localhost en vie 02/11/2006 22:15:44 daemon fonctionne 02/11/2006 22:15:44 localhost en vie 02/11/2006 22:15:54 daemon fonctionne 02/11/2006 22:15:54 localhost en vie 02/11/2006 22:16:04 daemon fonctionne 02/11/2006 22:16:04 localhost en vie 02/11/2006 22:16:14 daemon fonctionne 02/11/2006 22:16:14 localhost en vieTu remarques que le résultat est enregistré toutes les 10 secondes
dans le fichier de configuration tu peux changer la fréquence de test
lami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
2 nov. 2006 à 21:42
2 nov. 2006 à 21:42
Bien sûr ce n'est qu'un début.
tu peux créer un répertoire (ça sera ton logiciel) qui contiendra plusieurs fichiers
- le fichier de configuration par défaut
- un fichier script pour contrôler le daemon qui sera copier dans /etc/init.d
- le script daemon
- un fichier README
- si besoin une page man
- si besoin des options en ligne de commande qui te permettront de faire tout le test ( -all) ou seulement le ping ( -p), etc..
- un script d'installation qui va copier les fichiers de config et de contrôle de daemon à leur emplacement ainsi que le script daemon dans /usr/local/bin, aussi les pages man dans /usr/local/man/manN, etc..
Tu peux aussi créer un paquetage .rpm ou .deb qui pourra être installer avec les commandes spécifiques
lami20j
tu peux créer un répertoire (ça sera ton logiciel) qui contiendra plusieurs fichiers
- le fichier de configuration par défaut
- un fichier script pour contrôler le daemon qui sera copier dans /etc/init.d
- le script daemon
- un fichier README
- si besoin une page man
- si besoin des options en ligne de commande qui te permettront de faire tout le test ( -all) ou seulement le ping ( -p), etc..
- un script d'installation qui va copier les fichiers de config et de contrôle de daemon à leur emplacement ainsi que le script daemon dans /usr/local/bin, aussi les pages man dans /usr/local/man/manN, etc..
Tu peux aussi créer un paquetage .rpm ou .deb qui pourra être installer avec les commandes spécifiques
lami20j
Merci beaucoup lami20j pour ton aide.
Je vais regarder attentitevemnt ce que tu as écrit mais j'ai quelques questions.
Dans l'énoncé, les Internet. et System. indiquent en faite le module a utilisé pour pouvoir utilisé les fonctions ping, tcp etc ... c'est bien cela ?
Comment on fait pour savoir dans quel module se trouve une fonction qu'il me faudra utiliser ?
Je vais regarder attentitevemnt ce que tu as écrit mais j'ai quelques questions.
System.disk(’hda3’,95) ou System.disk(’/home’,90) occupation disque System.process(’apache’) vérification de l’existence d’un processus System.cpuload(10) charge du processeur (faisable facilement ?) • des services réseau : Internet.ping(’192.168.0.10’) machine en vie ? Internet.tcp(’192.168.0.10’,’25’) port toujours ouvert ? Internet.url(’http://foo/bar’) existence d’une URL (idem en ftp) ...
Dans l'énoncé, les Internet. et System. indiquent en faite le module a utilisé pour pouvoir utilisé les fonctions ping, tcp etc ... c'est bien cela ?
Comment on fait pour savoir dans quel module se trouve une fonction qu'il me faudra utiliser ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
2 nov. 2006 à 23:11
2 nov. 2006 à 23:11
Re,
• le système Linux sur lequel il est exécuté :
System.disk(’hda3’,95) ou System.disk(’/home’,90) occupation disque
System.process(’apache’) vérification de l’existence d’un processus
System.cpuload(10) charge du processeur (faisable facilement ?)
• des services réseau :
Internet.ping(’192.168.0.10’) machine en vie ?
Internet.tcp(’192.168.0.10’,’25’) port toujours ouvert ?
Internet.url(’http://foo/bar’) existence d’une URL (idem en ftp)
Internet.url(’http://foo/bar’,’/path/to/file’) contenu d’une page web
• la base de données :
Database.alive() base en fonctionnement ?
Database.request(’select * from c where a>100’)
teste la non existence de résultat ; erreur si des lignes sont renvoyées
Voici les actions que le logiciel pourrait déclencher :
• Action.mail(’sujet’,’texte’) envoi d’un courriel
• Action.ftp(’/full/path/to/local/file’,’/pub/directory’) envoi d’un fichier
• Action.database(’update c set a=10 where a>100’) commande SQL
:Frequency(60)
Ce que tu vois en gras j'ai déjà traité. Voir le script modifié.
Comment on fait pour savoir dans quel module se trouve une fonction qu'il me faudra utiliser ?
Ben, je ne sais pas par coeur. Il faut chercher sur le site de CPAN ou dans les modules standard.
lami20j
P.S. je vais regarder de plus près demain, pour ce soir je m'arrête là
Tu peux déjà tester ce que je t'ai donné.
Pour l'instant une fois le daemon démarrer si tu veux l'arrêter tape
ps aux | grep daemon.pl pour récuperer le PID
ensuite tu fait kill PID
• le système Linux sur lequel il est exécuté :
System.disk(’hda3’,95) ou System.disk(’/home’,90) occupation disque
System.process(’apache’) vérification de l’existence d’un processus
System.cpuload(10) charge du processeur (faisable facilement ?)
• des services réseau :
Internet.ping(’192.168.0.10’) machine en vie ?
Internet.tcp(’192.168.0.10’,’25’) port toujours ouvert ?
Internet.url(’http://foo/bar’) existence d’une URL (idem en ftp)
Internet.url(’http://foo/bar’,’/path/to/file’) contenu d’une page web
• la base de données :
Database.alive() base en fonctionnement ?
Database.request(’select * from c where a>100’)
teste la non existence de résultat ; erreur si des lignes sont renvoyées
Voici les actions que le logiciel pourrait déclencher :
• Action.mail(’sujet’,’texte’) envoi d’un courriel
• Action.ftp(’/full/path/to/local/file’,’/pub/directory’) envoi d’un fichier
• Action.database(’update c set a=10 where a>100’) commande SQL
:Frequency(60)
Ce que tu vois en gras j'ai déjà traité. Voir le script modifié.
Comment on fait pour savoir dans quel module se trouve une fonction qu'il me faudra utiliser ?
Ben, je ne sais pas par coeur. Il faut chercher sur le site de CPAN ou dans les modules standard.
lami20j
P.S. je vais regarder de plus près demain, pour ce soir je m'arrête là
Tu peux déjà tester ce que je t'ai donné.
Pour l'instant une fois le daemon démarrer si tu veux l'arrêter tape
ps aux | grep daemon.pl pour récuperer le PID
ensuite tu fait kill PID
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
2 nov. 2006 à 23:27
2 nov. 2006 à 23:27
Pour System.disk(’hda3’,95) ou System.disk(’/home’,90) occupation disque voilà ce que j'ai trouvé sur cpan
https://metacpan.org/pod/release/IGUTHRIE/Filesys-Df-0.92/Df.pm
Pour Internet.ping(’192.168.0.10’) machine en vie ?
j'ai utilisé le module standard Net::Ping
lami20j
https://metacpan.org/pod/release/IGUTHRIE/Filesys-Df-0.92/Df.pm
Pour Internet.ping(’192.168.0.10’) machine en vie ?
j'ai utilisé le module standard Net::Ping
lami20j
Salut,
à la compilation du fichier daemon.pl, ce message apparait mais ça n'empeche pas le programme de fonctionner et j'ai bien le fichier log.daemon de créer
Est-ce que c'est pareil chez toi et est-ce que tu as pu regarder de plus pret ?
à la compilation du fichier daemon.pl, ce message apparait mais ça n'empeche pas le programme de fonctionner et j'ai bien le fichier log.daemon de créer
Use of uninitialized value in concatenation (.) or string at ./daemon.pl line 76, <CONFIG> line 10
Est-ce que c'est pareil chez toi et est-ce que tu as pu regarder de plus pret ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 nov. 2006 à 20:01
3 nov. 2006 à 20:01
Dit plutôt ce que tu fait.
Quel script tu as exécuté. As-tu fait des modifications?
Il n'y a pas de compilation manuelle.
Tu l'exécute tu simplement perl daemon.pl, c'est l'interpreteur Perl qui s'occupe de la compilation+exécution
Je ne peux pas t'aider si tu ne me dit ce que tu fait.
CONFIG c'est le handler vers le fichier de configuration.
Je ne sais pas que tu as écrit dans ce fichier.
Je n'ai pas fait un gestionnaire d'erreurs.
C'était seulement pour te donner une idée.
Je pourrai faire ton exo, mais ça ne te servira à rien de la voir comme ça prêt à porter
lami20j
P.S. Chez moi tel quel, ça fonctionne sans erreurs
Quel script tu as exécuté. As-tu fait des modifications?
Il n'y a pas de compilation manuelle.
Tu l'exécute tu simplement perl daemon.pl, c'est l'interpreteur Perl qui s'occupe de la compilation+exécution
Je ne peux pas t'aider si tu ne me dit ce que tu fait.
CONFIG c'est le handler vers le fichier de configuration.
Je ne sais pas que tu as écrit dans ce fichier.
Je n'ai pas fait un gestionnaire d'erreurs.
C'était seulement pour te donner une idée.
Je pourrai faire ton exo, mais ça ne te servira à rien de la voir comme ça prêt à porter
lami20j
P.S. Chez moi tel quel, ça fonctionne sans erreurs
J'ai écrit les fichiers .conf et .pl dans un repétoire perl qui est dans mon /home/ en modifant les chemins pour que ce soit pris en compte.
Après j'ai fait un chmod +x daemon.pl puis ./daemon.pl
En procédant de cette manière, j'ai eu le message
J'ai aussi rajouté l'option -w dans
#!/usr/bin/perl -w
Après j'ai fait un chmod +x daemon.pl puis ./daemon.pl
En procédant de cette manière, j'ai eu le message
Use of uninitialized value in concatenation (.) or string at ./daemon.pl line 76, <CONFIG> line 10
J'ai aussi rajouté l'option -w dans
#!/usr/bin/perl -w
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 nov. 2006 à 20:46
3 nov. 2006 à 20:46
Re,
pas besoin de -w
j'ai déjà écrit use warnings;use strict;
Affiche le fichier de configuration s'il te plaît. Merci.
lami20j
pas besoin de -w
j'ai déjà écrit use warnings;use strict;
Affiche le fichier de configuration s'il te plaît. Merci.
lami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 nov. 2006 à 20:58
3 nov. 2006 à 20:58
La ligne 76 du script
print DAEMON "$date daemon fonctionne\n$local\n$remote\n";
la ligne 10 de CONFIG (fichier de configuration)
remote.ping 192.168.1.2
$remote doit capturer 192.168.1.2
A priori tu n'as rien ici, ou le format ne correspond pas
J'ai besoin de voir ton fichier de configuration
lami20j
print DAEMON "$date daemon fonctionne\n$local\n$remote\n";
la ligne 10 de CONFIG (fichier de configuration)
remote.ping 192.168.1.2
$remote doit capturer 192.168.1.2
A priori tu n'as rien ici, ou le format ne correspond pas
J'ai besoin de voir ton fichier de configuration
lami20j
Le fichier de configuration est le même que celui que tu avais écrit :
# la frequence dont le daemon execute les testes # Ex : Frequenci NN # frequency insensible à la case # NN nombre de secondes frequency 10 # vérification de la connexion # faire un ping vers une machine (locale ou distante) local.ping localhost remote.ping 192.168.1.2
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 nov. 2006 à 21:12
3 nov. 2006 à 21:12
Fait un copier coller du script, tu dois y avoir une erreur quelque part.
lami20j
lami20j
Les 2 fichiers:
et
# la frequence dont le daemon execute les testes # Ex : Frequenci NN # frequency insensible à la case # NN nombre de secondes frequency 60 # vérification de la connexion # faire un ping vers une machine (locale ou distante) local.ping localhost remote.ping 192.168.1.2
et
#!/usr/bin/perl use warnings; use strict; use POSIX; use Time::HiRes; use Net::Ping; my $ping = Net::Ping->new(); my ($local,$remote); my $freq; my ($localhost,$remotehost); my $ip = qr/(?:\d{1,3}\.){3}\d{1,3}/; # fichier de configuration open CONFIG,"/home/stephanie/perl/mon_daemon.conf" or die "E/S : $!\n"; while (<CONFIG>){ # on saute les commentaires next if /^#/; # je recupere la frequence $freq=$1 if /frequency\s*(\d+)/i; # je recupere l'hôte locale $localhost = $1 if /local\.ping\s*(\w+)/i; # je recupere l'hôte distante à vérifiier $remotehost = $1 if /remote\.ping\s*($ip)/i; } # exécution de script en tant que daemon # my $pid=fork; exit if $pid; die "fork impossible : $!" unless defined($pid); POSIX::setsid() or die "Pas de nouvelle session : $!\n"; my $kill_pid = 0; sub gestion_signaux { $kill_pid = 1; } $SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&gestion_signaux; # les taches que le daemon exécute # chaque 60 secondes il va écrire # dans /var/log/log.daemon # dans le format #jj/mm/yyyy hh:mm:ss daemon fonctionne #jj/mm/yyyy hh:mm:ss localhost en vie # until ($kill_pid) { # calcule la date et l'heure du teste # pour affichage dans journal my ($s,$mm,$h,$j,$m,$y) = (localtime)[0..5]; $j = sprintf("%02d",$j); $m = sprintf("%02d",$m +=1); $y +=1900; $s = sprintf("%02d",$s); $mm = sprintf("%02d",$mm); $h = sprintf("%02d",$h); my $date = "$j/$m/$y $h:$mm:$s"; open DAEMON,">> /home/stephanie/perl/log.daemon" or die "E/S : $!\n"; if ($ping->ping($localhost)){ $local = "$date $localhost en vie"; } if ($ping->ping($remotehost)){ $remote = "$date $remotehost en vie"; } print DAEMON "$date daemon fonctionne\n$local\n$remote\n"; sleep($freq); }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 nov. 2006 à 21:58
3 nov. 2006 à 21:58
Entre ces 2 lignes ajoute ça
print "$remotehost\n"
donc tu auras
P.S. Bizarre, j'ai copier tes fichiers, et j'exécute chez moi. Pas de problèmes.
Affiche aussi le contenu de log.daemon pour voir
print "$remotehost\n"
donc tu auras
print DAEMON "$date daemon fonctionne\n$local\n$remote\n"; print "$remotehost\n" sleep($freq);lami20j
P.S. Bizarre, j'ai copier tes fichiers, et j'exécute chez moi. Pas de problèmes.
Affiche aussi le contenu de log.daemon pour voir
J'ai mis frequancy a 20 pour avoir plus de résultats.
Même après avoir fait ps aux | grep daemon.pl puis kill PID, le message continue de s'afficher ...
Même après avoir fait ps aux | grep daemon.pl puis kill PID, le message continue de s'afficher ...
03/11/2006 22:11:13 daemon fonctionne 03/11/2006 22:11:13 localhost en vie 03/11/2006 22:11:38 daemon fonctionne 03/11/2006 22:11:38 localhost en vie 03/11/2006 22:12:03 daemon fonctionne 03/11/2006 22:12:03 localhost en vie 03/11/2006 22:12:28 daemon fonctionne 03/11/2006 22:12:28 localhost en vie 03/11/2006 22:12:53 daemon fonctionne 03/11/2006 22:12:53 localhost en vie 03/11/2006 22:13:18 daemon fonctionne 03/11/2006 22:13:18 localhost en vie 03/11/2006 22:13:27 daemon fonctionne 03/11/2006 22:13:27 localhost en vie 03/11/2006 22:13:43 daemon fonctionne 03/11/2006 22:13:43 localhost en vie 03/11/2006 22:13:52 daemon fonctionne 03/11/2006 22:13:52 localhost en vie 03/11/2006 22:14:03 daemon fonctionne 03/11/2006 22:14:03 localhost en vie 03/11/2006 22:14:17 daemon fonctionne 03/11/2006 22:14:17 localhost en vie 03/11/2006 22:14:28 daemon fonctionne 03/11/2006 22:14:28 localhost en vie 03/11/2006 22:14:42 daemon fonctionne 03/11/2006 22:14:42 localhost en vie
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 nov. 2006 à 22:19
3 nov. 2006 à 22:19
donc il ne vois pas l'ip de la machine distante
mets ton fichier de configuration sur cjoint.com
lami20j
P.S. Entre temps je vais étudier en détails tes fichiers.
mets ton fichier de configuration sur cjoint.com
lami20j
P.S. Entre temps je vais étudier en détails tes fichiers.
Pour ce qui est des différentes options qu'il faut coder :
...
Ici, c'est le résultat des lignes.
Dans le fichier de configuration, comment doivent s'écrire toutes les commandes pour analyse ?
• le système Linux sur lequel il est exécuté : System.disk(’hda3’,95) ou System.disk(’/home’,90) occupation disque System.process(’apache’) vérification de l’existence d’un processus System.cpuload(10) charge du processeur (faisable facilement ?) • des services réseau : Internet.ping(’192.168.0.10’) machine en vie ? Internet.tcp(’192.168.0.10’,’25’) port toujours ouvert ? Internet.url(’http://foo/bar’) existence d’une URL (idem en ftp) Internet.url(’http://foo/bar’,’/path/to/file’) contenu d’une page web • la base de données : Database.alive() base en fonctionnement ? Database.request(’select * from c where a>100’) teste la non existence de résultat ; erreur si des lignes sont renvoyées Voici les actions que le logiciel pourrait déclencher : • Action.mail(’sujet’,’texte’) envoi d’un courriel • Action.ftp(’/full/path/to/local/file’,’/pub/directory’) envoi d’un fichier • Action.database(’update c set a=10 where a>100’) commande SQL :Frequency(60)
while (<CONFIG>){ # on saute les commentaires next if /^#/; # je recupere la frequence $freq=$1 if /frequency\s*(\d+)/i; # je recupere l'hôte locale $localhost = $1 if /local\.ping\s*(\w+)/i; # je recupere l'hôte distante à vérifiier $remotehost = $1 if /remote\.ping\s*($ip)/i; }
...
Ici, c'est le résultat des lignes.
open DAEMON,">> /home/stephanie/perl/log.daemon" or die "E/S : $!\n"; if ($ping->ping($localhost)){ $local = "$date $localhost en vie"; } if ($ping->ping($remotehost)){ $remote = "$date $remotehost en vie"; }
Dans le fichier de configuration, comment doivent s'écrire toutes les commandes pour analyse ?
# la frequence dont le daemon execute les testes # Ex : Frequenci NN # frequency insensible à la case # NN nombre de secondes frequency 20 # vérification de la connexion # faire un ping vers une machine (locale ou distante) local.ping localhost remote.ping 192.168.1.2
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 nov. 2006 à 22:56
3 nov. 2006 à 22:56
Enleve cette ligne
my $ip = qr/(?:\d{1,3}\.){3}\d{1,3}/;
et au lieu de
$remotehost = $1 if /remote\.ping\s*($ip)/i;
écrit
$remotehost = (split /\s+/,$_)[1] if /^remote\.ping/i;
Pour ce qui est des différentes options qu'il faut coder :
je vais voir ça demain
lami20j
P.S. le résultat de test j'aimerai le voir ce soir
As-tu une adresse 192.168.1.2 sur ton réseau?
je n'ai pas écrit un message si la machine n'existe pas
je vais le faire
my $ip = qr/(?:\d{1,3}\.){3}\d{1,3}/;
et au lieu de
$remotehost = $1 if /remote\.ping\s*($ip)/i;
écrit
$remotehost = (split /\s+/,$_)[1] if /^remote\.ping/i;
Pour ce qui est des différentes options qu'il faut coder :
je vais voir ça demain
lami20j
P.S. le résultat de test j'aimerai le voir ce soir
As-tu une adresse 192.168.1.2 sur ton réseau?
je n'ai pas écrit un message si la machine n'existe pas
je vais le faire