Visualizzazione dei risultati da 1 a 7 su 7

Discussione: trasferimento ftp

  1. #1

    trasferimento ftp

    Ciao a tutti sono nuova sia del forum sia del linguaggio perl

    ho realizzato uno script in perl che trasferisce 3 file da un server all'altro
    ho la necessità che l'ultimo file venga trasferito solo quando il primo file è stato completamente trasferito, la domanda forse per voi banale è questa:
    è certo che il secondo ordine di trasferimento sia inviato solo dopo il termine del primo trasferimento? (e che il terzo sia fatto solo dopo il secondo?).
    in caso contrario come faccio a controllarlo?

    Grazie smack

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Sei sicura che sia un problema Perl?

    ftp e` un programma del sistema operativo.

    Se inserito in un programma Perl, dovresti postare il pezzetto di codice in cui e` inserito, altrimenti specificare meglio il problema.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ciao
    mi spiego meglio

    nello script perl ho questa serie di istruzioni

    use Net::FTP;

    $ftp = Net::FTP->new("ftp.mioprimosito.it", Passive => 0);
    $ftp->login($uiserid,$pwsword);
    $ftp->cwd("/miadirectory");
    $ftp->put("$miopath/file");
    $res1=$ftp->pwd();
    $ftp->quit;

    $ftp = Net::FTP->new("ftp.mioprimosito.it", Passive => 0);
    $ftp->login($uiserid,$pwsword);
    $ftp->cwd("/miadirectory1");
    $ftp->put("$miopath/file1");
    $res2=$ftp->pwd();
    $ftp->quit;

    $ftp = Net::FTP->new("ftp.mioprimosito.it", Passive => 0);
    $ftp->login($uiserid,$pwsword);
    $ftp->cwd("/miadirectory2");
    $ftp->put("$miopath/file2");
    $res3=$ftp->pwd();
    $ftp->quit;

    devo essere sucura che il
    file1 inizi il trasferimento solo dopo che
    file sia stato già trasferito

    e che il trasferimento del file2 abbia inizio solo dopo che file1
    sia stato già trasferito

    le istruzioni così scritte mi garantiscono questa cosa? o potrebbe accadere che uno dei file successivi inizi il trasferimento prima del completamento del file precedente?

    grazie

  4. #4
    Ciao,

    nel tuo caso i trasferimenti iniziano e finiscono uno dopo l'altro nell'ordine che hai dato, quindi ok, l'unica cosa che potrebbe succedere e che un trasferimento non vada a buon fine, e non mi pare che hai inserito qualche controllo di errore.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Grazie per la risposta celere
    potresti dirmi come fare per controllare se dovesse verificarsi un errore?

    Grazie ancora

  6. #6
    Originariamente inviato da michela_vin
    Ciao
    mi spiego meglio

    nello script perl ho questa serie di istruzioni

    use Net::FTP;

    $ftp = Net::FTP->new("ftp.mioprimosito.it", Passive => 0);
    $ftp->login($uiserid,$pwsword);
    $ftp->cwd("/miadirectory");
    $ftp->put("$miopath/file");
    $res1=$ftp->pwd();
    $ftp->quit;

    $ftp = Net::FTP->new("ftp.mioprimosito.it", Passive => 0);
    $ftp->login($uiserid,$pwsword);
    $ftp->cwd("/miadirectory1");
    $ftp->put("$miopath/file1");
    $res2=$ftp->pwd();
    $ftp->quit;

    $ftp = Net::FTP->new("ftp.mioprimosito.it", Passive => 0);
    $ftp->login($uiserid,$pwsword);
    $ftp->cwd("/miadirectory2");
    $ftp->put("$miopath/file2");
    $res3=$ftp->pwd();
    $ftp->quit;

    devo essere sucura che il
    file1 inizi il trasferimento solo dopo che
    file sia stato già trasferito

    e che il trasferimento del file2 abbia inizio solo dopo che file1
    sia stato già trasferito

    le istruzioni così scritte mi garantiscono questa cosa? o potrebbe accadere che uno dei file successivi inizi il trasferimento prima del completamento del file precedente?

    grazie
    Il tuo codice è un po' incasinato
    Se ti devi connettere allo stesso spazio web non cè bisogno che che ti connetti e sconnetti 3 volte

    codice:
    use Net::FTP; 
    $errore=0;
    $ftp = Net::FTP->new("ftp.mioprimosito.it", Passive => 0); 
    $ftp->login($uiserid,$pwsword); 
    $ftp->cwd("/miadirectory"); 
    $ftp->put("$miopath/file") or $error=1;
    print "Il primo file non è stato caricato\n" if ($errore==1);
    $errore=0;
    
    $ftp->cwd("/miadirectory1"); 
    $ftp->put("$miopath/file1") or $error=1;
    print "Il secondo file non è stato caricato\n" if ($errore==1);
    $errore=0;
    
    $ftp->cwd("/miadirectory2"); 
    $ftp->put("$miopath/file2") or $error=1;
    print "Il terzo file non è stato caricato\n" if ($errore==1);
    $errore=0;
    $res1=$ftp->pwd(); 
    $ftp->quit;
    Le sitruzioni delle condizioni poi le farai più complesse.
    Secondo gli standard perl se una funzione riesce, ritorna un valore differente da zero, altrimenti ritorna UNDEF o zero.
    Quindi se il metodo put di FTP ritorna zero, verrà verificata la seconda parte e verrà assegnato ad $error il valore 1.
    The power of perl :metallica

  7. #7
    Si non è altro che un copia incolla della stessa istruzione.
    Ma sai quando non sei padrona della materia non ti metti certo a preoccuparti di queste cose.
    Fino a qualche mese fa pensavo che perl fosse una parolaccia
    quindi già il fatto che lo script funzionasse è stato un bel traguardo.
    ora grazie a te è anche ottimizzato che voglio di più?

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.