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

Modules Perl Discussion :

script perl pour ftp


Sujet :

Modules Perl

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut script perl pour ftp
    salut,

    J'ai fait un script perl pour acceder à un serveur ftp et y recuperer des fichiers;le script fonctionne.
    Donc j'ai voulu creer un fichier de conf qui contient les parametre de connexion et la sa ne fonctionne plus .
    voila mon script :
    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
    #!/usr/bin/perl -w
    use strict;
    use Net::FTP;
     
    #############################################################################
    # PARAMETRES
    my $monfichier="confi";
    require "C:/Documents and Settings/tom/Bureau/x/conf-$monfichier.cfg";
     
     
    my $ftp = Net::FTP->new("$HOST"); 
    $ftp->login("$USER","$PASSWD"); 
    $ftp->cwd("C:/Documents and Settings/tom/Bureau/x"); 
    $ftp->get("servi/y/fich.csv"); 
    $ftp->quit;
    et le fichier de conf contient cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $HOST="NOMDUSERVEUR";
    my $USER="user";
    my $PASSWD="passwd";
    sans faire appel au fichier de conf sa fonctionne et quand on l'appel sa bogue :
    Global symbol "$HOST" requires explicit package name at C:\Documents and Setting
    s\tom\Bureau\x\ftp.pl line 21.
    Global symbol "$USER" requires explicit package name at C:\Documents and Setting
    s\tom\Bureau\x\ftp.pl line 22.
    Global symbol "$PASSWD" requires explicit package name at C:\Documents and Setti
    ngs\tom\Bureau\x\ftp.pl line 22.
    Execution of C:\Documents and Settings\tom\Bureau\x\ftp.pl aborted du
    e to compilation errors.

    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    je me suis sur une machine unix
    donc j'ai essayer et sa ne fonctionne pas aussi
    j'ai meme essayer de recuperer un parametre que je saisi quand j execute mon script
    ./ftp.pl mon param
    et dans mon script j'essai de l'affichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $monparam=$1;
    print "$monparam";
    et ça ne fonctionne pas aussi
    est ce qu'il faut rajouter un module ??

    Use of uninitialized value in string at ./ftp.pl line 19.

    merci

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Perso, je procéderais comme ceci (l'ai déjà fait et fonctionne à merveille) :

    1) ton fichier .conf, sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HOST;NOMDUSERVEUR
    USER;user
    PASSWD;passwd
    2) dans ton script, une petite fonction qui alimente un hash depuis ce qu'elle va lire dans ton fichier .conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sub LitConf {
        my ($hash) = shift();
     
        open(CONF, "fichier.conf") or die("pb pour lire fichier.conf : $!\n");
        while(<CONF>) {
            chomp();
            $hash->{$1} = $2 if (/^(.+);(.+)$/;
        }
        close(CONF);
        return;
    }
    Et dans ton script, tu n'as plus qu'à déclarer un hash exemple %Conf et pour faire appel à la fonction LitConf( ), il suffit de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    LitConf(\%Conf);
     
    foreach(keys %Conf) {
        print "param pour $_ = $Conf{$_}\n";
    }

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    c'est compliqué par rapport au shell
    et c'est possible de passer un parametre à l'appel du script
    ./ftp.pl monhost...

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Bien sûr, c'est possible

    Et comme tu vas demander "comment", ben voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    # lancement du script avec arguments
    ./ftp.pl NOMDUSERVEUR user passwd
     
    # et la récup des arguments dans le script ftp.pl
    my ($Nomserveur, $user, $password) = ($ARGV[0] .. $ARGV[2]);

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    c'est nikel pour les param
    en faite arg[0] c'est comme $1

    mais pour le fichier de configuration
    on est obliger de passer par une fonction ?

Discussions similaires

  1. Script Perl pour VNC
    Par dubis dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 17/11/2009, 09h50
  2. Migration sunopsis v4/ODI problème du script jython pour FTP
    Par gusy78 dans le forum ODI (ex-Sunopsis)
    Réponses: 1
    Dernier message: 30/07/2008, 14h21
  3. Réponses: 3
    Dernier message: 31/03/2008, 13h59
  4. SUNOPSIS/ODI problème de script Jython pour FTP
    Par bmontandon dans le forum ODI (ex-Sunopsis)
    Réponses: 2
    Dernier message: 01/10/2007, 14h02
  5. Script PERL pour l'archivage/purge/zip de fichiers
    Par jfmerveille dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2007, 12h52

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