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

Langage Perl Discussion :

PS EXEC Perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut PS EXEC Perl
    Voila, tout d'abord, bonjour à tous, et bonne et heureuse année 2008.

    Je suis en train de faire un projet sur un outil de diagnostique pour poste client, en scriptant avec Perl. Le but de cette outil est sont les suivants :

    - Détecter les problèmes réseau ( configuration IP, Nom de domaine ...)
    - Lister l'arborescence de la machine
    - Executer par le biais de Perl de PS EXEC puis enregistrer le tout dans un fichier log qui me sera envoyé par mail


    J'ai besoin de votre aide quant à l'execution de PS EXEC sur une machine distant et que celui ci me retourne en sortie les différents résultat ( config IP, Arborescence, version de windows ...). Je m'adresse donc à vous afin que vous puissiez m'aiguiller dans cette dur tache.

    voici un bout de code que j'ai commencé :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    # Declaration des variables
     
    $mailserver = "";
    $domain     = "";
    $mail_to    = "";
    $mail_from  = "";
    $log_file   = "";
    $gateway    = "";
    $dns1       = "";
    $dns2       = "";
    my $a       = "";
    my $p       = "";
     
     
    # loading modules SMTP
     
    use Net::SMTP;
    use Time::HiRes qw( sleep usleep gettimeofday tv_interval);
     
    # Open a log file
     
    open (LOG, "> $log_file");
     
    # run stuff and write on the log file
     
    #.:::::::::::::::::::::::::::::::::::::: IPCONFIG ::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
     
    print LOG (".:: Test =  Ipconfig ::. \n\n");
     
    @table=`c:\\windows\\system32\\ipconfig.exe /all `;
     
    print LOG ("@table \n\n");
    print ("@table \n\n");
     
    foreach $line (@table) { print LOG $line if $line =~ /Gateway . . . . . . . . . : (\d+\.\d+\.\d+\.\d+)/;
    			$gateway = $1;
    			}
     
     
    foreach $line (@table) { print LOG $line if $line =~ /DNS Servers . . . . . . . . . . . : (\d+\.\d+\.\d+\.\d+)/;
    			$dns1 = $1;
    			}
     
    print LOG ("DNS Server address : ",$dns1);
    print ("DNS Server address : ",$dns1, " \n\n\n" );
     
     
    # .::::::::::::::::::::::::::::::::::::: Test PING GATEWAY ::::::::::::::::::::::::::::::::::::::::::::::::.
     
    print LOG (".:: Test  =  Ping Gateway: $gateway ::.\n");
    print (".:: Test  =  Ping Gateway: $gateway ::. \n\n");
     
     
     
    use Net::Ping;
     
    $p = Net::Ping->new();
    $a= $p->ping("$gateway");
     
     
    for ($i=0;$i<10; $i++){
    	sleep 0.5;
    	$t0 = gettimeofday;
    	$a=$p->ping($gateway);
    	$t1=(gettimeofday -  $t0);
    	print (" $gateway is alive. $t1 ms \n");
    	#print LOG ("$gatway is alive. $t1 ms \n");
    	}
     
     
     
    if( $a eq '')
    	{
    		print "\n gateway is not alive \n";
    		print LOG "\n gateway is not alive \n";
    	}
    	else
    	{
    		print "\n gateway is alive \n";
    		print LOG "\n gateway is alive \n";
    	}
     
     
    $p->close();
     
     
     
     
    # .::::::::::::::::::::::::::::::::::::: Test NSLOOKUP ::::::::::::::::::::::::::::::::::::::::::::::::.
     
     
     
     
     
     
     
     
     
    #.::::::::::::::::::::::::::::::::::::: Mail Sender ::::::::::::::::::::::::::::::::::::::::::::::::.
     
    # Open a file log and send an e-mail
     
    $smtp = Net::SMTP->new($mailserver, Hello => $domain);
    $date = localtime();
    $smtp->mail($mail_from);
    $smtp->to($mail_to);
    $smtp->data();
    $smtp->datasend("Subject: Test: $date\n\n");
     
    foreach ($gateway) { 
    	$smtp->datasend("$_"); 
    	}
     
    $smtp->dataend();
    $smtp->quit;
     
    # FIN	
    close LOG;



    si vous avez des suggestion, critiques ou même des idées, elles sont les bienvenues.

    Merci à tous

  2. #2
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Première suggestion, critique, ou idée (c'est toi qui vois) : utiliser les balises CODE pour présenter ton code (c'est le bouton # dans le formulaire de post), ça sera bien plus lisible.

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    voila , merci de la suggestion, c'est vrai que c'est mieux enfin plus lisible.

Discussions similaires

  1. lancer perl avec exec()
    Par skyangel20 dans le forum Langage
    Réponses: 0
    Dernier message: 24/07/2007, 11h11
  2. Execution d'un programme perl avec exec
    Par La Goule dans le forum Langage
    Réponses: 5
    Dernier message: 12/06/2007, 12h03
  3. [Système] Fonction exec() et script perl
    Par furtif1 dans le forum Langage
    Réponses: 10
    Dernier message: 18/05/2007, 10h57
  4. [Perl CGI] redirection après exec()?
    Par JohnMatrix dans le forum Web
    Réponses: 1
    Dernier message: 22/01/2007, 09h39
  5. exec prog perl (htlm) pas prise par Apache
    Par Pierre31 dans le forum Apache
    Réponses: 5
    Dernier message: 21/08/2006, 15h25

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