Команда FTP
Команда FTP реализует обмен файлами с FTP сервером в командной строке Windows. Утилита ftp.exe входит в стандартный дистрибутив всех версий операционных систем семейства Windows и позволяет выполнять обмен с сервером как в командном, так и в интерактивном режиме.
Формат командной строки:
FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:sendbuffer] [-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [узел]
-v — Отключение вывода на экран ответов с удаленного сервера.
-n — Отключение автоматического входа при начальном подключении.
-I — Отключение интерактивных запросов при передаче нескольких файлов.
-d — Включение отладочного режима.
-g — Отключение глобализации имен файлов (см. команду GLOB).
-s:имя_файла — Задание текстового файла, содержащего команды FTP, которые будут выполняться автоматически при запуске FTP.
-a — Использование локального интерфейса для привязки соединения.
-A — Анонимное подключение к серверу.
-x:send sockbuf — Переопределение стандартного размера буфера SO_SNDBUF (8192).
-r:recv sockbuf — Переопределение стандартного размера буфера SO_RCVBUF (8192).
-b:async count — Переопределение стандартного размера счетчика async (3)
-w:windowsize — Переопределение стандартного размера буфера передачи (65535).
узел — Задание имени или адреса IP удаленного узла, к которому необходимо выполнить подключение.
— команды mget и mput принимают параметры y/n/q как YES/NO/QUIT.
— для прекращения выполнения команд нажмите комбинацию клавиш CTRL+C.
При запуске без параметров, FTP переходит в интерактивный режим, ожидая ввода команд пользователем. На экране отображается приглашение — ftp > .
Для получения списка доступных команд можно ввести знак вопроса или команду help
! ? append ascii bell binary bye cd close | literal debug dir disconnect get glob hash help lcd | ls mdelete mdir mget mkdir mls mput open prompt | send put pwd quit quote recv remotehelp rename rmdir | status trace type user verbose Подсказку по конкретной команде можно получить введя знак вопроса или help и имя команды: ? connect Список команд FTP клиента Windows: ! — Временный переход из среды FTP в командную строку Windows (CMD.EXE) . Для возврата в FTP используется команда EXIT Как видно из списка перечисленных команд, стандартный клиент FTP в операционных системах Windows поддерживает далеко не полный перечень стандартных ftp-команд и, что самое неприятное, он не поддерживает команду переключения в пассивный режим ( passv ) обмена с сервером FTP, что делает его непригодным для обмена данными с серверами FTP, подключение к которым выполняется с использованием технологии трансляции сетевых адресов NAT . Другими словами, для обмена файлами с внешними, по отношению к подсети клиента, серверами, стандартный FTP-клиент не подходит. Это касается всех версий Windows, включая и Windows 10. Именно этот факт предопределяет область использования утилиты ftp.exe — только в локальных сетях, где возможно прямое TCP-соединение между клиентом и сервером. Пример сессии с использованием клиента FTP Windows: open 192.168.1.1 — открыть соединение с сервером 192.168.1.1 При использовании FTP клиента Windows в командных файлах, часто применяется запуск программы в режиме управления командами FTP, записанными в текстовый файл. Список FTP-команд для командной строки WindowsFTP команды предназначены для обмена файлами между компьютерами в частной сети или через интернет. Существует три способа, с помощью которых можно получить доступ к FTP :
Первые два — это простые средства, которые позволяют использовать браузер или клиентское приложение FTP — (например, FTP Voyager ) для подключения к FTP-серверу для обмена файлами. Используя интерфейс командной строки, нужно ввести набор команд для отправки или получения файлов с других компьютеров. Операционные системы Windows , Macintosh X и Linux имеют встроенные клиенты командной строки, которые могут быть использованы для установления FTP-соединения . Чтобы инициировать соединение в Windows , введите в CMD команды FTP и нажмите Enter . Команды FTP для командной строки Windows
dir -C = выводит файлы в расширенном формате. dir -1 = выводит список файлов в алфавитном порядке. dir -r = выводит список каталогов в обратном алфавитном порядке. dir -R = выводит список всех файлов в текущем каталоге и подкаталогах. dir -S = выводит список файлов в алфавитном порядке. | ||||||||||||||||||||||||||
disconnect | выход из FTP. | |||||||||||||||||||||||||||||
get | Получение файл с удаленного компьютера. | |||||||||||||||||||||||||||||
glob | Переключает настройки расширения файла. В выключенном состоянии аргументы имен файлов в командах put и get воспринимаются буквально и не расширяются. | |||||||||||||||||||||||||||||
hash | Включает/отключает вывод на экран знака ‘#’. Когда опция включена, после каждых 1024 байт переданных данных отображается хеш-символ (#). | |||||||||||||||||||||||||||||
help | Отображает информацию о команде, если команда вводится после help. | |||||||||||||||||||||||||||||
lcd | Отображает локальный каталог, в котором была запущена команда. Если же после команды lcd указан путь – изменяет текущий локальный каталог. | |||||||||||||||||||||||||||||
literal | Отправка произвольной строки символов в качестве команды удаленному серверу с ожиданием единственного ответного кода. | |||||||||||||||||||||||||||||
ls | Эта ftp exe команда выводит файлы удаленного компьютера. | |||||||||||||||||||||||||||||
mdelete | Удаление нескольких файлов. | |||||||||||||||||||||||||||||
mdir | Вывод содержимого удаленных каталогов. | |||||||||||||||||||||||||||||
mget | Получение нескольких файлов. | |||||||||||||||||||||||||||||
mkdir | Создание каталога на удаленном компьютере. | |||||||||||||||||||||||||||||
mls | Вывод содержимого нескольких каталогов удаленного компьютера. | |||||||||||||||||||||||||||||
mput | Отправка нескольких файлов. | |||||||||||||||||||||||||||||
open | Устанавливает соединение. | |||||||||||||||||||||||||||||
prompt | Включает/отключает подсказку. | |||||||||||||||||||||||||||||
put | Отправка одного файла. | |||||||||||||||||||||||||||||
pwd | Вывод рабочего каталога. | |||||||||||||||||||||||||||||
quit | Завершение сеанса ftp. | |||||||||||||||||||||||||||||
quote | Отправка произвольной команды. | |||||||||||||||||||||||||||||
recv | Получение файла. | |||||||||||||||||||||||||||||
remotehelp | Получение справки о командах удаленной системы. | |||||||||||||||||||||||||||||
rename | Переименовывает файл. | |||||||||||||||||||||||||||||
rmdir | Удаляет каталог на удаленном компьютере. | |||||||||||||||||||||||||||||
send | Отправка одного файла. | |||||||||||||||||||||||||||||
status | Отображает текущее состояние включенных и отключенных параметров. | |||||||||||||||||||||||||||||
trace | Включает трассировку пакетов. | |||||||||||||||||||||||||||||
Type | Устанавливает тип передачи файлов. | |||||||||||||||||||||||||||||
user | Отправка сведений о пользователе для входа на сервер. | |||||||||||||||||||||||||||||
verbose | Включает/ отключает режим информирования. |
FTP команды для Windows
FTP параметры для командной строки Windows
Параметры CMD используются для изменения работы команд FTP . Параметр командной строки обычно следует за основной командой FTP через пробел. Вот список часто используемых параметров командной строки FTP для Windows® :
Параметр командной строки | Описание |
-v | Отключение вывода на экран ответов с удаленного сервера. |
-n | Отключение автоматического входа при начальном подключении. |
-i | Отключение интерактивных запросов при передаче нескольких |
файлов.
будут выполняться автоматически при запуске FTP. Пробелы в этом параметре не допускаются. Используйте этот параметр вместо перенаправления (>).
FTP параметры командной строки для Windows
Консольный FTP-клиент , встроенный в Windows и Mac OS X — это надежный инструмент для тестирования, поиска и устранения неисправностей. Изучение приведенных выше cmd ftp команд поможет вам обмениваться файлами между компьютерами без установки дополнительного программного обеспечения.
FTP не является надежным способом обмена конфиденциальной информацией. Из-за ограничений этого протокола организации, как правило, используют для передачи файлов протоколы FTPS и SFTP . Технология управляемой передачи файлов ( MFT ) поддерживает эти протоколы безопасности.
Как переключить 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:password@testsite.com
Слова статьи: как закачать файл на сервер 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% — адрес фтп сервера
Вот такой простой синтаксис для загрузки и все стало работать как часы.