Cómo enumerar el contenido del directorio de FTP remoto, de forma recursiva
-
01-07-2019 - |
Pregunta
Después de descargar archivos desde un servidor FTP UNIX remoto, desea verificar que haya descargado todos los archivos correctamente.Como mínimo, obtendrá información similar al comando "dir /s" en el símbolo del sistema de Windows.El cliente FTP se ejecuta en Windows.
Solución
Lamentablemente esto fue escrito para usuarios de Unix/Linux :/
Personalmente, instalaría CYGWIN sólo para que los binarios de Linux de LFTP/RSYNC funcionen en Windows, ya que parece que no hay nada que compita con él.
Como @zadok.myopenid.com mencionó RSYNC, esta parece ser una compilación de Windows para él usando Cygwin (si logra poder obtener acceso SSH a la caja eventualmente)
http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp
Rsync es útil porque comparará todo con sumas de verificación y transferirá de manera óptima bloques de cambios parciales.
Si tienes CYGWIN/Linux:
http://lftp.yar.ru/ es mi herramienta de exploración favorita para esto.
Puede hacer casi todo lo que bash puede hacer, aunque sea de forma remota.
Ejemplo:
$ 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>
Otros consejos
Si tiene acceso ssh, utilice rsync en su lugar.Es una aplicación de transferencia de datos mucho mejor.
Tome el fusible para su sistema operativo y cargue ftpfs.Esto le permitirá montar el directorio ftp remoto localmente y podrá usar dir /s o cualquier otra aplicación que desee en él.
Hacer esto :
ls -lR
..................
Puedes usar ftp.listFiles("directorio") desde apache-commons-net y puede escribir su propio BFS o DFS para recuperar todos los archivos de forma recursiva.
Suponiendo que está utilizando FTP simple a través de la línea de comandos, use el comando Dir con la opción -rl para buscar recursivamente y copiarlo en un archivo y luego buscar el archivo usando GREP, encontrar o cualquier manera que sea compatible con su sistema operativo.
FTP> Dir -Rl Education.txt Salida al archivo local:educación.txt?y 227 Entrando en modo pasivo (9,62,119,15,138,239) 150 Abra la conexión de datos de modo ASCII para la lista de archivos 226 Transferencia completa