Cómo enumerar el contenido del directorio de FTP remoto, de forma recursiva

StackOverflow https://stackoverflow.com/questions/98224

  •  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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top