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





К сожалению, это было написано для пользователей Unix / Linux: /
Лично я бы установил CYGWIN только для того, чтобы заставить Linux-бинарные файлы LFTP / RSYNC работать в Windows, поскольку, похоже, нет ничего, что могло бы конкурировать с ним.
Как @ zadok.myopenid.com упомянутый rsync, похоже, это сборка Windows для него с использованием 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>
Чтобы получить более подробную информацию, вы также можете добавить параметр -l к find в lftp: find -l и добавить необязательное имя каталога.
Если у вас есть доступ по ssh, используйте вместо этого rsync. Это гораздо лучшее приложение для передачи данных.
Возьмите предохранитель для своей ОС и загрузите ftpfs. Это позволит вам смонтировать удаленный ftp-каталог локально, и вы можете использовать на нем dir / s или любое другое приложение.
Сделай это :
ls -lR
..................
+1, но, видимо, есть опечатка: ls -R работает хорошо, а 1 кажется неправильным (он удаляет информацию из списка и больше не выполняет рекурсию)
Я полагаю, вам нужен ls -lR (буква l, а не 1)
Вы можете использовать ftp.listFiles ("каталог") из apache-commons-net и можете написать свой собственный BFS или DFS для рекурсивного извлечения всех файлов.
Предполагая, что вы используете простой ftp через командную строку, Используйте команду dir с параметром -Rl для рекурсивного поиска и копирования его в файл, а затем выполните поиск файла с помощью grep, find или любого другого способа, поддерживаемого вашей ОС.
ftp> dir -Rl education.txt вывод в локальный файл: education.txt? y 227 Вход в пассивный режим (9,62,119,15,138,239) 150 Открытие подключения к данным в режиме ASCII для списка файлов 226 Передача завершена
Если вы хотите автоматизировать это:
lftp -u user,password -e 'find /;bye' host > file_listили просто получить количество файловlftp -u user,password -e 'find /;bye' host | -wc -l