2008-09-19 3 views
19

После загрузки файлов с удаленного FTP-сервера UNIX вы хотите убедиться, что вы правильно загрузили все файлы. Минимально вы получите информацию, аналогичную команде «dir/s» в командной строке Windows. Клиент FTP работает в Windows.Как перечислить содержимое каталогов удаленного FTP, рекурсивно

ответ

19

К сожалению, это было написано для пользователей Unix/Linux:/

Лично я бы установить CYGWIN только, чтобы получить бинарные файлы Linux от LFTP/Rsync для работы на окнах, так как там, кажется, не будет ничего, что конкурирует с ним ,

Как @ zadok.myopenid.com упоминается Rsync, это, как представляется, окна построить для него с помощью CYGWIN (если вам удастся быть в состоянии получить SSH доступ к ящику в конечном счете)

http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

Rsync удобен тем, что он будет сравнивать все с контрольными суммами и оптимально передавать частичные блоки изменения.


Если вы получаете CYGWIN/Linux:

http://lftp.yar.ru/ является моим любимым инструментом разведки для этого.

Это может сделать почти все, что может сделать bash, хотя и удаленно.

Пример:

 
$ 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> 
+2

Если вы хотите автоматизировать: `LFTP -u пользователь, пароль -e«найти/; bye 'host> file_list` или просто получить кол-во файлов `lftp -u user, password -e' find /; bye 'host | -wc -l` – camomileCase 2012-07-31 18:58:39

+0

Чтобы получить более подробную информацию, вы также можете добавить опцию `-l` для` find` в `lftp`:` find -l` и добавить дополнительное имя каталога. – nealmcb 2017-05-06 23:54:00

2

Если у вас есть доступ к SSH, используйте вместо Rsync. Это гораздо лучшее приложение для передачи данных.

Захватите предохранитель для вашей ОС и загрузите ftpfs. Это позволит локально установить удаленный ftp-каталог, и вы можете использовать dir/s или любое другое приложение, которое вы хотите на нем.

0

Вы можете использовать ftp.listFiles ("Каталог") из apache-commons-net и может написать собственную BFS или DFS для рекурсивного извлечения всех файлов.

0

Предполагая, что вы используете простую ftp через командную строку, Используйте команду dir с параметром -Rl для поиска рекурсивно и копирования в файл, а затем выполните поиск файла с помощью grep, find или любого другого способа, поддерживаемого вашей ОС.

ftp> dir -Rl education.txt выход в локальный файл: education.txt? у 227 Ввод пассивный режим (9,62,119,15,138,239) 150 Открытие соединения данных в режиме ASCII для списка файлов 226 Передача завершена