Как переключить ftp.exe в пассивный режим? или загрузка с wput
Использовал я как-то стандартный ftp.exe из Windows, все было хорошо, пока не он не перестал работать.
200 PORT command successful. Consider using PASV.
Оказалось понадобился пассивный режим.
Так думаю, нет вопросов, прошелся по справке не видно ничего такого, нашел обсуждение
quote pasv
но эта команда переводит сервер в пассивный режим, но не клиент ftp.exe
Альтернатива нашлась быстро — это wput, так как в делах закачки я доверяю wget, то wput был принят в мою команду без колебаний.
Скачать ftp-клиент с возможностью докачки и пассивным режимом работы можно тут или с официального сайта.
Синтаксис работы простой, хотя над тем чтобы понять как закачать файл, если он находится не в каталоге с wput и не создавать подкаталоги на удаленном сервере мне понадобилось пол часа, вот не мог я понять логики, но главное результат..
Пример работы с wput
c:\Work\wput.exe -v -u -nd —basename=c:\data\xls\ c:\data\xls\price.zip ftp://username:[email protected]
Слова статьи: как закачать файл на сервер ftp, загрузить файл из командной строки, пассивный режим ftp пример работы, how to configure ftp.exe to use passive mode (PASV), пример использования wput.exe
Внимание! Добавлено 13.10.2011
Что-то с временем обнаружился какой-то баг — при копировании архива с файлами wput’ом на фтп сервер, дата и время файла обновлялось, а текстовый файл не менялся, а иногда менялся, я сильно не заморачивался с выяснением что да как, так как до этого столкнулся с багом 7zip который иногда не создавал новый архив, если старый архив лежал на том месте, а иногда создавал, в общем я решил кардинально — заменил wput на curl, тем более curl я использовал в другом новом проекте и опыт работы с ним уже был.
Скачать облегченный curl — ссылка
curl.exe -T %data_dir%\%file_name% -u %ftp_user%:%ftp_pass% %ftp_server% %data_dir% - каталог с данными для отправки %file_name% - имя отправляемого файла на фтп %ftp_user% - имя пользователя фтп %ftp_pass% - пароль на фтп %ftp_server% - адрес фтп сервера |
Вот такой простой синтаксис для загрузки и все стало работать как часы.
P.S. Если нужно указать конкретно в какую папку на фтп загружать, то в случае использования curl это можно сделать так — просто после адреса FTP-сервера указать нужную директорию. Например, ftp://nemcd.com/site/1/
или полный пример
curl -T c:\pdf\info_2010_RU.pdf -u my_login:my_password ftp://nemcd.com/site/1/ |
респект и уважуха, единственная статья в рунете просвятившая меня по поводу —basename=
Спасибо, старался!
«координально»? ……
а как же по-другому?
По-другому — это по-русски. А тут неизвестно по какому. Есть слово координата, есть слово кардинальный. А гибрида — не существует, не существовало, и, надеюсь, никогда не будет существовать.
Это такая же банальная «безграмотщина», как и «ньюансы», «к стати», «вообщем», «на верху» (и любые комбинации «за ранее», «по надежнее», «по быстрее» и т.д.), «зделал», на вопрос «что (с)делаеТ?» писать «делаетЬся» — «пишетЬся», «нравитЬся», «работаетЬся», а на вопрос «что (с)делать?» наоборот забывать «Ь» — «оформляТСя», «расписаТСя», «закопаТСя», «обдолбаТСя»..
Такие писания на каждом шагу сейчас чуть ли не в каждой статье и каждом сообщении. Дожили..
Чуть прояснил?
Кстати, очень хороший, маленький, и, главное, легко прикручиваемый в батники консольный фтп-клиент — ncftp. Советую
Не пояснил
А вот почитал выдачу гугла стало немного понятнее, вы придираетесь к словам, считаю это бесполезной затеей.
К этому слову привык с детства, не помню откуда я его услышал, но оно родное и я его буду использовать.
ncftp я обошел стороной, не помню уже почему
«К этому слову привык с детства .. оно родное и я его буду использовать»
Ну, Ваше дело. Однако этим вы проявляете неуважение к тем людям, к кому Вы обращаетесь, в данном случае, этой своей статьей. Безграмотность не красит человека и никак не добавляет ЧСВ. Лишь только отвращение в глазах грамотных людей. Жаль, что Вы, Антон, этого не понимаете.
Кроме того, безграмотные, смотря на это Ваше слово, убеждаются в том, что их безграмотность — это на самом деле грамотность. И закрепляют в себе такое «знание» еще больше.
«Язык — это одежда мыслей» (с) Samuel Johnson
Имидж.. Вы считаете что имидж не важен, или язык никак не отражается на имидже. А зря. Врядли можно найти себе достойное место в жизни, являясь безграмотным.
Как, чуть ли не плачу от истерик, когда вижу сорцы программ/сайтов/1с и прочего от разных «праграмеров», кто на соискание просятся, кому работу дай разовую. Что ни комментарий к строчке — то ошибка, что ни диалог — то белиберда. Как можно такому человеку доверить какую-либо работу, если он безграмотен по-умолчанию либо от нежелания, либо от неумения работать над собой, либо от рассеянности? Только минимум, где-то там, за копейки.
Можете почистить комментарии, если посчитаете нужным.
Только на Вашем месте, я бы хорошо задумался.. очень хорошо.
Вы много пишете.
Краткость — сестра таланта.
Я наконец-то понял в чем дело,
у меня тогда было совершенно плохое настроение,
теперь я поговорил с любимым человеком поужинал и меня осенило.
Всего лишь нужно было написать через А.
Кардинально! Ура.
Честно в жизни хватает всякой фигни кроме правильного написания некоторых слов, не спорю что нужно быть грамотным, но главное быть счастливым.
А то будет горе от ума.
Да, я тоже впервые вижу wput –basename, — нигде не приводят примеры и по ключам. И вообще — wget расписана с примерами по русски, а wput — нет, «по ди ка юзверю разберись….». Спасибо.
а как в curl директорию на фтп показать куда файл положить?
Просто после адреса сервера указываем каталог,
добавил в заметку.
спасибо. вроде заработало.сейчас в скрипт напишу. а сначала я написал путь, но в конце не дописал / и не работало
Спасибо за нужную информацию.
По ходу чтения возник вопрос.
Как в curl можно сделать отправку всех файлов в папке?
Я использую поштучную загрузку, глянул по инету люди делают всякие циклы с перебором имен файлов или если в линуксе вставляют специальную конструкцию.
При бекапах с фтп я делаю по-другому — монтирую фтп в качестве диска и работают с ним стандартной утилитой robocopy, там с этим проблем нету.