Я пытаюсь определить причину, по которой для некоторых FTP-серверов требуется пустая строка в скрипте следующим образом:
open server.com
username
ftp_commands
bye
См. Пустую строку после учетных данных имени пользователя.
Пример из: FTP из командного файла
еще одна ссылка на то же самое: http://newsgroups.derkeiler.com/Archive/Comp/comp.sys.ibm.as400.misc/2008-05/msg00227.html
Также здесь обсуждается:
archive.midrange.com/midrange-l/200601/msg00048.html «Я наблюдаю такое же поведение, как если бы я не указывал пароль для входа в систему». с ответом, относящимся к нашему же исправлению ... archive.midrange.com/midrange-l/200601/msg00053.html и archive.midrange.com/midrange-l/200601/msg00065.html
Примечание. По моему опыту, вопросы о FTP вызывают неотесанные ответы. По общему признанию, FTP устарел, но у многих клиентов все еще есть устаревшие системы, которые они не могут обновить или заменить. Причину этого здесь не следует обсуждать. Задача этого вопроса - вызвать положительный ответ. Пожалуйста, не отвечайте, если вы не согласны с вышеизложенным. Если вы никогда не сталкивались с этой проблемой, не отвечайте.
Я подозреваю, что это может быть ограничено сценариями FTP, выполняемыми с компьютеров Windows, но мне сказали, что это происходит часто и со многими разными серверами.
Мой конкретный интерес состоит в том, чтобы понять, что может вызвать это, поскольку у меня есть реальный пример производственной системы, которая внезапно требует этого в качестве обходного решения после многих лет работы без проблем. Сервер принадлежит третьей стороне, которая не требует никаких изменений со своей стороны. Детали сервера неизвестны и не могут быть определены.
Любая помощь или поддержка от кого-то, кто сталкивался с таким же, были бы оценены.
пс. Извините за множество слов и ссылок на болезненные ответы, но я задавал аналогичные вопросы о сбоях сервера и в других местах и, к сожалению, получил ответные ответы на FTP и респондентов, спорящих об обоснованности вопроса. Я бы действительно не задавал и не отправлял бы этот вопрос в Интернете, если бы я лучше понимал проблему. Я знаю людей, которые видели эту проблему, но не знаю, что ее вызывает.
Я опасаюсь, что этот вопрос снова превратится в еще одну неуместную дискуссию. Пожалуйста, очень хорошо прошу: пожалуйста, не отвечайте, если вы не сталкивались с подобной проблемой.
ДАЛЬНЕЙШЕЕ РЕДАКТИРОВАНИЕ: Пожалуйста, не предлагайте менять продукт. Проблема не в требовании пустой строки. Мы знаем, что это решает проблему. Проблема заключается в том, чтобы не объяснить причину появления пустой строки. Небольшая разница, но важный момент, который следует отметить при ответе на этот вопрос.
Я тоже столкнулся с подобной проблемой. Я чувствовал, что некоторые из моих команд ftp в сценарии FTP пропускаются. Но через некоторое время я обнаружил, что мой скрипт работает с «интерактивным режимом» как «Вкл.». Я отключил его в скрипте после подключения к FTP-серверу, и, похоже, он сотворил чудо ... Если вы все еще испытываете этот вопрос, попробуйте.
PS: отключив интерактивный режим, мне тоже не нужно было давать пустые строки
Какие окончания строк используются в вашем скрипте? Попробуйте использовать альтернативную форму (если они Windows, используйте Unix, Unix, если они Windows).
Какой FTP-клиент вы используете? Вместо этого рассмотрите возможность использования NCFTP: http://www.ncftp.com/ncftp/ . Он имеет гораздо лучшую поддержку сценариев, чем большинство клиентов, встроенных в операционные системы.
Добавление пустой строки в сценарий кажется приемлемым решением для пропуска строк в сценариях FTP. К сожалению, на форумах и т.п. не так много ссылок на то, чтобы эта проблема решалась. Также маловероятно, что причина будет выявлена без помощи экспертов по протоколу FTP, которые могут активно отлаживать сеанс, вызывающий нарушение. Я бы предпочел, чтобы на этот вопрос были даны ответы в реальном мире на аналогичные случаи и определение причины, но я должен признать, что этого, скорее всего, не произойдет. Также, учитывая типичные ответы на такой вопрос на открытых форумах, я бы сказал, что активное участие в поиске ответа на этот вопрос не произойдет без значительных коммерческих усилий.
Таким образом, на этот вопрос ответят следующим образом: Причина пропуска строки в сценарии FTP не может быть идентифицирована, однако ее можно легко решить, добавив пустую строку в сценарий, в котором обнаружен пропуск строки.
Это происходит из тусклых уголков моей памяти, поскольку мне не приходилось так писать FTP в командной строке с тех пор, о, 90-е ...
В сеансе протокола FTP после отправки имени пользователя на FTP-сервер сервер может запросить пароль, даже если имя пользователя указывает, что следует использовать анонимный FTP (т.е. отправленное имя пользователя ftp
или anonymous
). В этом случае сервер запрашивает пароль, но игнорирует его. Таким образом, в сценарии, который запускает FTP-клиент командной строки, пустая строка будет использоваться для отправки пустого пароля. Если сервер не запрашивает пароль, пустая строка ничего не делает и безвредна.
Вам нужно использовать готовый к работе ftp-клиент?
Если нет, вы можете взглянуть на продукты NcFTP Client. Я недавно автоматизировал процесс загрузки ftp, и мысль об автоматизации универсального ftp-клиента меня не устраивала.
У клиента NcFTP есть инструмент под названием ncftpbatch, который позволяет автоматизировать процессы ftp без необходимости выполнять всю ручную работу, как при автоматизации общего ftp.
http://www.ncftp.com/ncftp/doc/ncftpbatch.html
Изменить: пропустил часть о предложении другого продукта. Забудь о моем посте.