PDA

Просмотр полной версии : Получить список папок с ftp


SwiMMeR
12.03.2007, 09:52
Задача: написать командный файл, который сможет скопировать с фтп все подпапки из определенной папки. В качестве клиента используется штатный виндовый ftp.exe (возможно использование другого)

Запор случился в том, что этот клиент скопировать папки как таковые не может. Все чего я от него добился - получил список папок в консоль. Негусто ...

KomatoZo
12.03.2007, 11:44
найдите и скачайте wget под Windows. Больше проблем не будет.

Hubbitus
13.03.2007, 03:49
Да даже и искать не надо, он бесплатный и крутой. Думаю что тоже будет резоннее его скачать, чем скрипты писать.

Вот он http://www.gnu.org/software/wget/
Под винду вот http://users.ugent.be/~bpuype/wget/

SwiMMeR
13.03.2007, 04:42
Спасибо. Помогло.
Задача усложняется ... надо удалить эти подпапки после скачивания
... из известных мне клиентов это может делать ftp.exe

в wget такой функции не нашел :(

Hubbitus
13.03.2007, 11:35
Задача усложняется ... надо удалить эти подпапки после скачивания
Не понял. Тоесть сначала все скачать, а потом сразу удалить?? Или имеется ввиду что все файлы из поддиректорий нужно свалить в кучу, без структуры директорий? А если там дубликаты по именам будут?

KomatoZo
13.03.2007, 13:37
Нет, он имеет в виду не скопировать с ФТП, а переместить... ХЗ... НЕ помню, есть ли там такое... Сейчас посмотрю.

добавлено через 20 минут
Долго думал. Понял, что у ftp.exe есть масса ключиков. В том числе и -s. Читайте мануаль. Хотя если чисто скачивать, то удобнее wget не найти ничего.

Hubbitus
13.03.2007, 13:48
Нет, wget конечно же качалка, он не заливает и не удаляет, на сколько я знаю. Это может наверное делать curl, но думаю проще тем же ftp.exe просто зайти после скачивания и все не нужное удалить...

crawler
13.03.2007, 15:47
ftp клиент с поддержкой скриптов http://www.staff-ftp.com/

SwiMMeR
14.03.2007, 02:14
Не понял. Тоесть сначала все скачать, а потом сразу удалить?? Или имеется ввиду что все файлы из поддиректорий нужно свалить в кучу, без структуры директорий? А если там дубликаты по именам будут?
Сначала все скачать, сохранив структуру папок, а потом удалить

SwiMMeR
14.03.2007, 05:52
у ftp.exe есть масса ключиков. В том числе и -s. Читайте мануаль

думаю проще тем же ftp.exe просто зайти после скачивания и все не нужное удалить...

Собственно в этом то и проблема. ftp.exe не может копировать каталоги/папки/директории, только файлы. Может создавать папки на удаленном сервере и может удалять пустые папки на удаленном сервере.

В моем случае за ранее не известно существуют ли подпапки в папке, которую я копирую, неизвестно сколько их и каковы их имена.

добавлено через 11 минут
Пока проблему решил так:
Файл 1.cmd

MKDIR "cdump"
CD "cdump"
"CURL" ftp://login:password@server/cdump/ --list-only > "%TEMP%\dirs.tmp"
FOR /F "eol= " %%I IN (%TEMP%\dirs.tmp) DO CALL "2.cmd" %%I
ERASE /F /Q "%TEMP%\dirs.tmp"

Файл 2.cmd

MKDIR "cdump\%1"
CD "cdump\%1"
@ECHO login>"%TEMP%\admin_cdump.tmp"
@ECHO password>>"%TEMP%\admin_cdump.tmp"
@ECHO binary>>"%TEMP%\admin_cdump.tmp"
@ECHO prompt>>"%TEMP%\admin_cdump.tmp"
@ECHO cd /cdump/%1>>"%TEMP%\admin_cdump.tmp"
@ECHO mget *>>"%TEMP%\admin_cdump.tmp"
@ECHO mdelete *>>"%TEMP%\admin_cdump.tmp"
@ECHO cd /cdump>>"%TEMP%\admin_cdump.tmp"
@ECHO rmdir %1>>"%TEMP%\admin_cdump.tmp"
@ECHO bye>>"%TEMP%\admin_cdump.tmp"
FTP -s:"%TEMP%\admin_cdump.tmp" server
ERASE /F /Q "%TEMP%\admin_cdump.tmp"

вот :)

Hubbitus
19.03.2007, 03:19
Сначала все скачать, сохранив структуру папок, а потом удалить
А какой в этом вообще смысл тогда???

Тебе что, нужно просто скриптом, через твой комп с одного ФТП что-то перебросить на другой, так?

SwiMMeR
23.03.2007, 07:52
А какой в этом вообще смысл тогда???

Тебе что, нужно просто скриптом, через твой комп с одного ФТП что-то перебросить на другой, так?
Смысл самый простой - делать бэкап данных (например логов сервера ежедневно), архивировать и удалять. В качестве файл-сервера используется сервер по виндой, а в качестве бэкапируемого - под солярой

Hubbitus
26.03.2007, 01:13
В качестве файл-сервера используется сервер по виндой, а в качестве бэкапируемого - под солярой
А не проще тогда это делать с солярки, по любому доступному протоколу, FTP хотябы???

SwiMMeR
29.03.2007, 04:33
А не проще тогда это делать с солярки, по любому доступному протоколу, FTP хотябы???
Такой возможности нет. Доступ к соляре только по протоколу фтп.