Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    99

    FTP BATCH con resume file

    Salve a tutti!!!
    ho un quesito da porgervi... ho fatto un file ftp. bat per prendere dei file da un server remoto con il cron, tutto funziona a meraviglia ma ora dovrei fare un altro passo in avanti... in poche parole vorrei che dall'ftp venissero tirati giù solo i nuovi file e non quelli già scaricati. Avete idea di come si possa fare?

    Mille Grazie!!!

    ecco i miei file

    c.txt
    user
    password
    bin
    prompt
    mget *.*
    quit
    _______________
    ftp.bat
    ftp -s:c.txt ipftp
    cd \directory_data_locale

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    99

    Re: FTP BATCH con resume file

    Nessun aiuto?

    Grazie



    Originariamente inviato da pavel-18
    Salve a tutti!!!
    ho un quesito da porgervi... ho fatto un file ftp. bat per prendere dei file da un server remoto con il cron, tutto funziona a meraviglia ma ora dovrei fare un altro passo in avanti... in poche parole vorrei che dall'ftp venissero tirati giù solo i nuovi file e non quelli già scaricati. Avete idea di come si possa fare?

    Mille Grazie!!!

    ecco i miei file

    c.txt
    user
    password
    bin
    prompt
    mget *.*
    quit
    _______________
    ftp.bat
    ftp -s:c.txt ipftp
    cd \directory_data_locale

  3. #3
    Non credo proprio. Con la shell di Windows puoi fare ben poco.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da billiejoex
    Non credo proprio. Con la shell di Windows puoi fare ben poco.
    Che c'entra Windows ? Non ha parlato di cron ?

  5. #5
    In effetti non ho capito cosa c'entri cron ma a quanto dice ha a che fare con un "file batch" con estensione ".bat". L'ambiente presumo sia quindi Windows.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    In effetti ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    99
    Originariamente inviato da billiejoex
    In effetti non ho capito cosa c'entri cron ma a quanto dice ha a che fare con un "file batch" con estensione ".bat". L'ambiente presumo sia quindi Windows.
    Allora, il file .bat gira si sotto windows ma l'ftp dove si trovano i file è linux, al limite conoscete qualche programmino che può fare questa cosa?

    Grazie

  8. #8
    La cosa è fattibile ma non credo che la shell di windows basti.
    Con linguaggi come perl, python o vbs lo puoi fare tranquillamente con una decina di righe di codice:
    * Ti connetti al server ftp
    * Scarichi la lista dei file tramite un ls e salvi i risultati in una stringa che chiamerai "A".
    * Successivamente esegui un ls o un dir sulla directory in cui vuoi scaricare i file e salvi i risultato in una stringa che chiamerai "B".
    * esegui un confronto tra le due stringhe e salvi in una terza variabile che chiamerai "C" i risultati che compaiono in A ma non in B.
    * se A e B sono perfettamente uguali (su entrambe le parti sono presenti gli stessi file) non farai nulla.
    * se su A ci sono dei valori che non sono presenti in B eseguirai un download riferito ad ognuno di questi valori.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  9. #9
    Sei fortunato, mi hai trovato in una giornata "creativa" e ti ho fatto uno script in python.
    Era semplice ma un paio di ore ce le ho ugualmente spese (1 ora solo per capire come downloadare il maledetto file in modalità binaria, ma va beh...).
    Il principio è lo stesso che ho illustrato nel thread sopra. Se vuoi applicare delle modifiche sappi che A corrisponde alla lista di file su ftp, B ai file della dir locale (in cui dovrai posizionare lo script) e C rappresenta la "differenza" tra A e B.
    Il programma scarica i file solo dalla root (/) e sono esclusi i file contenuti nelle cartelle che non verranno scaricati.
    Sostituisci i dati "tuo sito/username/password" secondo le tue esigenze.
    Se non lo hai fatto, installa Python, rinomina lo script in estensione .py e lancialo da shell.

    codice:
    import ftplib
    import os
    
    def getfile(block):
        file.write(block)
        print ".",
    
    HOST = "tuo_server.org"
    USER = "tuo_user"
    PASS = "tua_pass"
        
    print "\nDirectory corrente %s" %os.getcwd()
    print "Connessione al server ftp %s. . .\n" %HOST
    ftp = ftplib.FTP(HOST)
    ftp.login(USER,PASS)
    A = ftp.nlst()
    B = os.listdir(os.getcwd())
    C = []
    x = 0
    for i in A:
        if i not in B:
            C.append(i)
            x +=1
    for i in C:
        print "Trovato file mancante nella dir locale: %s" %i
    if x == 0:
         print "I file del server ftp e della cartella locale coincidono"
         os._exit(0)
    z = 0
    for i in C:
        z += 1
        print "\nDownloading %s\%s: %s" %(z,x,i)
        file = open(i, 'wb')
        ftp.retrbinary('RETR ' + 'index.html', getfile)
    print "\nTutti i files sono stati scaricati con successo"
    ftp.quit()
    L'output è una cosa del tipo:
    C:\sito>ftp.py

    Directory corrente C:\sito
    Connessione al server ftp www.tuosito.altervista.org. . .

    Trovato file mancante nella dir locale: Servizi.html
    Trovato file mancante nella dir locale: immagini
    Trovato file mancante nella dir locale: index.html

    Downloading 1\3: Servizi.html
    . .
    Downloading 2\3: immagini
    . .
    Downloading 3\3: index.html
    . .
    Tutti i files sono stati scaricati con successo
    Credo dovrebbe andare bene.

    Saluti
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

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.