Comment lister le contenu du répertoire du FTP distant, de manière récursive
-
01-07-2019 - |
Question
Après avoir téléchargé des fichiers depuis un serveur FTP UNIX distant, vous souhaitez vérifier que vous avez correctement téléchargé tous les fichiers. Minimal, vous obtiendrez des informations similaires à " dir / s " commande à l'invite de commande Windows. Le client FTP s'exécute sous Windows.
La solution
Malheureusement, cela a été écrit pour les utilisateurs Unix / Linux: /
Personnellement, j’installerais CYGWIN uniquement pour que les fichiers binaires Linux de LFTP / RSYNC fonctionnent sous Windows, puisqu’il ne semble pas y avoir de concurrence.
As @ zadok.myopenid.com mentionné rsync, cela semble être une construction Windows utilisant CYGWIN (si vous parvenez à obtenir un accès ssh à la boîte éventuellement)
http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp
Rsync est pratique dans la mesure où il compare tout avec les sommes de contrôle et transfère de manière optimale les blocs de modification partielle.
Si vous obtenez CYGWIN / Linux:
http://lftp.yar.ru/ est mon outil d'exploration préféré pour cela.
Il peut faire presque tout ce que peut faire bash, même à distance.
Exemple:
$ lftp mirror.3fl.net.au lftp mirror.3fl.net.au:~> ls drwxr-xr-x 14 root root 4096 Nov 27 2007 games drwx------ 2 root root 16384 Apr 13 2006 lost+found drwxr-xr-x 15 mirror mirror 4096 Jul 15 05:20 pub lftp mirror.3fl.net.au:/> cd games/misc lftp mirror.3fl.net.au:/games/misc>find ./ ./dreamchess/ ./dreamchess/full_game/ ./dreamchess/full_game/dreamchess-0.2.0-win32.exe ./frets_on_fire/ ./frets_on_fire/full_game/ ./frets_on_fire/full_game/FretsOnFire-1.2.451-macosx.zip ./frets_on_fire/full_game/FretsOnFire-1.2.512-win32.zip ./frets_on_fire/full_game/FretsOnFire_ghc_mod.zip ./gametap_setup.exe ...... lftp mirror.3fl.net.au:/games/misc> du gametap_setup.exe 32442 gametap_setup.exe lftp mirror.3fl.net.au:/games/misc> du -sh gametap_setup.exe 32M gametap_setup.exe lftp mirror.3fl.net.au:/games/misc>
Autres conseils
Si vous avez un accès ssh, utilisez plutôt rsync. C’est une application de transfert de données bien meilleure.
Prenez un fusible pour votre système d’exploitation et chargez ftpfs. Cela vous permettra de monter le répertoire ftp distant localement et vous pourrez utiliser dir / s ou toute autre application de votre choix.
Faites ceci:
ls -lR
..................
Vous pouvez utiliser ftp.listFiles ("répertoire") à partir d'apache-commons-net et écrire votre propre fichier BFS ou DFS pour récupérer tous les fichiers de manière récursive.
En supposant que vous utilisez un simple ftp via une ligne de commande, Utilisez la commande dir avec l'option -Rl pour effectuer une recherche récursive et le copier dans un fichier, puis effectuez une recherche dans le fichier à l'aide de grep, find ou de toute autre manière prise en charge par votre système d'exploitation.
ftp > dir -Rl education.txt sortie dans le fichier local: education.txt? y 227 Passage en mode passif (9,62,119,15,138,239) 150 Ouverture d'une connexion de données en mode ASCII pour la liste de fichiers 226 Transfert terminé