IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation et administration système Perl Discussion :

Stocker des variable suite a un fork


Sujet :

Programmation et administration système Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Stocker des variable suite a un fork
    Bonjour, j ai un souci avec mon fork.
    Je dois stocker des ip et ensuite envoyer un mail recapitulant les ip repondant au ping mais je ne vois pas comment faire
    si vous pouviez me donner un petit coup de main sa serait super
    Merci d'avance
    Je vous mets mon code source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    #!/usr/bin/perl -w
     
    use strict;
    use Net::Ping;
    use Mail::Sendmail;
     
     
    my @cam = ("192.168.1.150","192.168.1.151","192.168.1.152","192.168.1.153","192.168.1.154","192.168.1.155","192.168.1.156","192.168.1.157","192.168.1.158","192.168.1.159","192.168.1.59");
     
    my $p = Net::Ping->new("icmp");
    my $chemin = "./pingE.pl";
    my @pids;
     
    sub lancePing($)
    {
        my ($ip) = @_;
        die("problème de fork !!!!\n"), unless defined(my $pid = fork());
        if ($pid == 0)
        {
            # c'est le fils ! on execute la commande
            system($chemin, $ip);
            # et après, on sort
            exit;
        }
        else 
        {
            # c'est le père, on n'attend pas le fils, on continue ! on stocke juste le pid
            push(@pids, $pid);
        }
    }
     
    # on lance le prog en parallèle
    foreach my $ip (@cam){
    	&lancePing($ip);
    }
    # suite du code, executée immédiatement
    # sub appelée automatiquement en fin de programme
    END {
        # on attend la fin des fils
        foreach my $pid(@pids) {
            waitpid($pid, 0);
        }
    }
    Ce code fait appel a ce code la pour l'envoie de mail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    #!/usr/bin/perl -w
     
    use strict;
    use Net::Ping;
    use Mail::Sendmail;
    my $p = Net::Ping->new("icmp");
     
     
    my $chemin = "./pingE.pl";
    my $ipE=$ARGV[0];
    print $ipE;
    if ($p->ping("$ipE")) {
    	my %mail = (  To    => "\@blalba",
            	From    => "camera ".$ipE."\@blabla",
    		Subject => "Test Camera ".$ipE." Pb",
            	Message => $ipE ." repond au Ping!.\n"
                 );
     
    		if (sendmail %mail) { print "Mail sent OK ". $ipE.".\n" }
    	        else { print "Error sending mail: $Mail::Sendmail::error \n" }
    	} else {
    	  my %mail = (  To    => "\@blalba",
                 		From    => "camera ".$ipE."\@blabla",
    	     		Subject => "Test Camera ".$ipE." Pb",
                 		Message => $ipE ." ne repond pas au Ping, il y a un probleme !.\n"
                  	     );
     
    		if (sendmail %mail) { print "Mail sent OK ". $ipE.".\n" }
    	        else { print "Error sending mail: $Mail::Sendmail::error \n" }
    		sleep(1800);
    		system($chemin, $ipE);
    }

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Si tu sais à quel PID est associé quel IP, il te suffit de retransmettre la réussite ou l'échec dans le code de retour du fils correspondant.

    --
    Jedaï

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/10/2009, 08h57
  2. stocker des variables
    Par zalalus dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/09/2009, 10h50
  3. Stocker des variables dans la couche application
    Par mumuri dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 21/08/2009, 17h33
  4. [C#2005] Stocker des variables dans une classe
    Par Herlece dans le forum Windows Forms
    Réponses: 7
    Dernier message: 13/10/2008, 10h30
  5. JSP stocker des variables javascript en session
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/08/2005, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo