IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Получить список папок с ftp (http://www.imho.ws/showthread.php?t=116418)

SwiMMeR 12.03.2007 09:52

Получить список папок с ftp
 
Задача: написать командный файл, который сможет скопировать с фтп все подпапки из определенной папки. В качестве клиента используется штатный виндовый 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

Цитата:

Сообщение от SwiMMeR (Сообщение 1372655)
Задача усложняется ... надо удалить эти подпапки после скачивания

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

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

Цитата:

Сообщение от Hubbitus (Сообщение 1372804)
Не понял. Тоесть сначала все скачать, а потом сразу удалить?? Или имеется ввиду что все файлы из поддиректорий нужно свалить в кучу, без структуры директорий? А если там дубликаты по именам будут?

Сначала все скачать, сохранив структуру папок, а потом удалить

SwiMMeR 14.03.2007 05:52

Цитата:

Сообщение от KomatoZo (Сообщение 1372894)
у ftp.exe есть масса ключиков. В том числе и -s. Читайте мануаль

Цитата:

Сообщение от Hubbitus (Сообщение 1372931)
думаю проще тем же 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 (Сообщение 1373393)
Сначала все скачать, сохранив структуру папок, а потом удалить

А какой в этом вообще смысл тогда???

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

SwiMMeR 23.03.2007 07:52

Цитата:

Сообщение от Hubbitus (Сообщение 1376578)
А какой в этом вообще смысл тогда???

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

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

Hubbitus 26.03.2007 01:13

Цитата:

Сообщение от SwiMMeR (Сообщение 1379657)
В качестве файл-сервера используется сервер по виндой, а в качестве бэкапируемого - под солярой

А не проще тогда это делать с солярки, по любому доступному протоколу, FTP хотябы???

SwiMMeR 29.03.2007 04:33

Цитата:

Сообщение от Hubbitus (Сообщение 1381226)
А не проще тогда это делать с солярки, по любому доступному протоколу, FTP хотябы???

Такой возможности нет. Доступ к соляре только по протоколу фтп.


Часовой пояс GMT +4, время: 00:58.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.