Script d'automatisation de transfert de fichier via FTP

Script d'automatisation de transfert de fichier via FTP - Perl - Programmation

Marsh Posté le 24-12-2004 à 11:38:02    

Je cherche a faire le programme suivant sous windows:
Faire une boucle de N iterations et pour chaque iteration faire:
-Connexion vers le meme site FTP avec login password
-Get d'un fichier defini depuis le serveur sur le PC, je cherche a recopier le fichier avec un nom different pour chaque iteration de la boucle
 
Pour le moment j'en suis au programme suivant:
 
    $ftphost = "172.26.60.82";
    $ftpuser = "login";
    $ftppass = "password";
    $filename = "fichier.txt";
 
    open (TF, $Temp) || die "Can't open temp file";
    print TF "open $ftphost\r\n";
    print TF "$ftpuser\r\n";
    print TF "$ftppass\r\n";
    print TF "bi\r\n";
    print TF "ha\r\n";
    print TF "get $filename\r\n";
    print TF "quit\r\n";
    close TF;
 
Mais bon ca plante a la compilation, si qqn pouvait m'aider, pour la boucle c'est bon mais il faut aussi que je puisse faire le get avec un nom different lors de la recopie sur le PC pour chaque iteration.
 
Merci d'avance.


Message édité par merou91 le 24-12-2004 à 12:06:09
Reply

Marsh Posté le 24-12-2004 à 11:38:02   

Reply

Marsh Posté le 24-12-2004 à 12:36:44    

J'ai trouve en cherchant un peu dans l'aide  :sleep:  
 
$file1="boot";
$fileend=".cfg.txt";
 
for ($i = 0; $i < 5000; $i++)
{
      $fileadd=$i;
      $file="$file1$fileadd$fileend";
 
      use Net::FTP;
      $ftp = Net::FTP->new("wwwwwwwww.com", Debug => 0);
      $ftp->login("www",'www');
      $ftp->cwd("/directory" );
      $ftp->get("myfile",$file);
      $ftp->quit;
      sleep(2);
}
 
 
 

merou91 a écrit :

Je cherche a faire le programme suivant sous windows:
Faire une boucle de N iterations et pour chaque iteration faire:
-Connexion vers le meme site FTP avec login password
-Get d'un fichier defini depuis le serveur sur le PC, je cherche a recopier le fichier avec un nom different pour chaque iteration de la boucle
 
Pour le moment j'en suis au programme suivant:
 
    $ftphost = "172.26.60.82";
    $ftpuser = "login";
    $ftppass = "password";
    $filename = "fichier.txt";
 
    open (TF, $Temp) || die "Can't open temp file";
    print TF "open $ftphost\r\n";
    print TF "$ftpuser\r\n";
    print TF "$ftppass\r\n";
    print TF "bi\r\n";
    print TF "ha\r\n";
    print TF "get $filename\r\n";
    print TF "quit\r\n";
    close TF;
 
Mais bon ca plante a la compilation, si qqn pouvait m'aider, pour la boucle c'est bon mais il faut aussi que je puisse faire le get avec un nom different lors de la recopie sur le PC pour chaque iteration.
 
Merci d'avance.


Reply

Marsh Posté le 25-12-2004 à 10:59:08    

en Perl il faut utiliser au maximum les modules (comme tu l'as fait avec Net::FTP)
par contre je ne comprend pas : tu veux le compiler ? dans quel but ? empêcher la lecture du password ?
Compiler du Perl c'est pas le genre de truc qui marche du premier coup, et encore une fois réussi bonjour les exécutions un peu bancal... à ta place je prendrais un freeware client ftp en ligne de commande où l'on passe soit un fichier de config soit tout en ligne de commande : au pire tu peux toujours générer la ligne de commande ou le fichier de config en perl compilé pour protéger le password (et encore je suis sûr qu'il doit se balader en clair qque part dans l'exécutable)
 
essayes de télécharger ftpget.exe sur le net et crée une enveloppe perl ou batch autour de cet outil

Reply

Marsh Posté le 25-12-2004 à 12:07:03    

chiffrer le mot de passe de ftp dans un script c'est sympa, mais vu que de toute façon il passe en clair sur internet, c'est surtout beaucoup de peine pour un gain bien faible au niveau sécurité !!

Reply

Marsh Posté le 25-12-2004 à 19:41:28    

En fait j'avais besoin de faire un test de plusieurs milliers de transferts FTP sur un equipement reseau. J'avais deja fait un programme en Perl il y a peu donc j'ai recommence, c'est compile avec le compilateur de Dzsoft.
 
Je sais que les informations ne sont pas cryptees mais je vois pas le rapport?
 
En tout cas merci et le programme est pret pour le prochain qui le demande :).

Reply

Marsh Posté le 26-12-2004 à 22:30:04    

bin pk tu veux le compiler justement
le seul intéret de le compiler, c'est d'empecher le code d'être vu, surtout les mots de passe

Reply

Marsh Posté le 27-12-2004 à 19:09:26    

Sur du code compile, tu fais un "strings" et tu vois les mots de passe s'ils sont en dur dans ton code...

Reply

Marsh Posté le 29-12-2004 à 17:15:17    

matafan a écrit :

Sur du code compile, tu fais un "strings" et tu vois les mots de passe s'ils sont en dur dans ton code...


 
Je vois pas de quoi vous parlez, j'ai fais un programme qui fait des FTP en boucle.
 
J'ai aucune utilite a crypte le mot de passe :pt1cable:, pourquoi vous vous acharnez sur cette histoire de programme compile pas compile?

Reply

Marsh Posté le 29-12-2004 à 19:39:05    

bah à toi de répondre : pourquoi veux-tu le compiler sachant que tu peux l'interpréter ?

Reply

Marsh Posté le 29-12-2004 à 21:23:13    

couak a écrit :

bah à toi de répondre : pourquoi veux-tu le compiler sachant que tu peux l'interpréter ?


 
Je cherche a executer mon programme. Pour ca j'utilise dzsoft qui me permet en plus de m'indiquer ou sont les erreurs a la compilation?
 
Pourquoi interpreter le code, quel est l'avantage?
 
Edit: j'en suis au niveau debutant en Perl  :sleep:


Message édité par merou91 le 29-12-2004 à 21:27:57
Reply

Marsh Posté le 29-12-2004 à 21:23:13   

Reply

Marsh Posté le 29-12-2004 à 22:25:02    

pk interprété? parce que c'est beaucoup plus simple, t'es pas obligé de compilé justement :D
 
tu fais des modifs live et tu roule live

Reply

Marsh Posté le 29-12-2004 à 22:38:24    

Puis Perl c'est pas fait pour etre compile. Extrait du man de perlcc :

The code generated in this way is not guaranteed to work. The whole
codegen suite ("perlcc" included) should be considered very experimen-
tal. Use for production purposes is strongly discouraged.


Message édité par matafan le 29-12-2004 à 22:38:57
Reply

Marsh Posté le 30-12-2004 à 16:11:43    

matafan a écrit :

Puis Perl c'est pas fait pour etre compile. Extrait du man de perlcc :

The code generated in this way is not guaranteed to work. The whole
codegen suite ("perlcc" included) should be considered very experimen-
tal. Use for production purposes is strongly discouraged.



 
En cherchant un peu c'est pas si simple que ca de voir une difference entre compile et interprete:
http://www.perl.com/doc/FMTEYEWTK/comp-vs-interp.html

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed