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