Je tente de download la valeur d'une année de données à partir d'un server FTP NOAA en utilisant wget (ou ncftpget). Cependant, cela prend plus de time qu'il ne devrait en raison des frais généraux de FTP (je pense). Par exemple, cette command
time wget -nv -m ftp://ftp:[email protected]/pub/data/noaa/2015 -O /weather/noaa/2015
Ou de même, via ncftpget
ncftpget -R -T -v ftp.ncdc.noaa.gov /weather/noaa/ /pub/data/noaa/2015
Donne un résultat de. 53 minutes pour transférer 30M!
FINISHED --2015-01-03 16:21:41-- Total wall clock time: 53m 32s Downloaded: 12615 files, 30M in 7m 8s (72.6 KB/s) real 53m32.447s user 0m2.858s sys 0m8.744s
Quand je regarde ce transfert, chaque file individuel est transféré assez rapidement (500kb / s), mais le téléchargement de 12 000 files relativement petits entraîne des frais généraux énormes et ralentit tout le process.
Mes questions:
Voici comment j'ai fini par résoudre cela en utilisant les conseils des autres. La NOAA dans ce cas a un FTP et une ressource HTTP pour cela, donc ce que j'ai écrit un script qui fait ce qui suit:
Exemple de script:
# generate file list ncftpls ftp://path/to/ftp/resources > /tmp/remote_files.txt # append the full path, use http sed -i -e 's/^/http:\/\/www1\.website\.gov\/pub\/data\//' /tmp/remote_files.txt # download using aria2c aria2c -i /tmp/remote_files.txt -d /filestore/2015
Cela fonctionne beaucoup plus vite et est probablement plus gentil pour les servers de la NOAA. Il y a probablement même un moyen intelligent de se débarrasser de cette étape intermédiaire, mais je ne l'ai pas encore trouvé.
Sinon, si vous avez un access en écriture sur votre hôte (dans ce cas, je suppose que vous vous connectez anonymement et que vous n'avez pas access en écriture) zip / tar les files avant le téléchargement
Oui tu as raison. Malheureusement, alors que les spécifications ftp offrent un mode de transfert alternatif qui est capable de multiplier plusieurs files sur une seule connection de données, la dernière fois que j'ai fait un sondage sur les logiciels disponibles (il était vrai en 1998), aucun ne l'a soutenu. Je ne pense pas que la situation a changé parce que l'intérêt pour ftp a été plutôt faible. La plupart des organisations avec de tels sets de données y ont access via http, ou dans de plus grandes archives pour éviter ce problème. Vous devriez vérifier si NOAA fait cela.