Работа с FTP в консоле

15.04.2017 Linux, ftp, console

Команды

Открываем консоль. Запускаем нашу утилиту, введя буквы ftp
Видим на экране приглашение:

Bash
ftp>


HELP

Выдает список поддерживаемых команд


? имя команды

Получение короткого описания указанной команды.


OPEN

Присоединиться к указанному серверу (пишем его имя либо IP-адрес).
Также можно указать порт через пробел. По-умолчанию используется стандартный - 21.

Bash
ftp> open ftp.microsoft.com


При этом сервер Вас спросит логин и пароль.


CLOSE или DISCONNECT

Закрыть соединение с текущим FTP сервером.

Bash
ftp> close


BYE или QUIT

Закрыть соединение и выйти из утилиты FTP.

Bash
ftp> bye


USER

Залогиниться на данном сервере под указанным пользователем (Вы должны быть уже подключены).

Bash
ftp> user myusername


где вместо "myusername" подставьте имя пользователя, под которым логинитесь. FTP-сервер Вас спросит пароль для этого пользователя перед тем, как пустить.


LS или DIR

Показать список файлов и директорий в текущей папке на сервере.

Bash
ftp> ls


MLS или MDIR

Выгрузить список файлов из нескольких директорий в файл на Ваш компьютер.

Bash
ftp> mls dir1 dir2 dir3 mylocalfile.txt


CD

Перейти в указанную папку на сервере.

Bash
ftp> cd ../another/folder

Частный случай этой команды: CDUP - перейти в родительскую директорию - то же самое, что и "CD ..":

Bash
ftp> cdup


LCD

Перейти у указанную папку на Вашем компьютере.

Bash
ftp> lcd d:\temp


PWD

Показать текущий путь (текущую папку) на FTP сервере.

Bash
ftp> pwd


GET или RECV

Загрузить с FTP сервера в текущую папку Вашего компьютера указанный файл.

Bash
ftp> get myftpfile.txt


MGET

Загрузить несколько файлов в текущую папку Вашего компьютера с сервера FTP.

Bash
ftp> mget file1.txt file2.txt
mget file1.txt? y
mget file2.txt? y


NEWER

Загрузить с сервера FTP на Ваш компьютер указанный файл только если Ваш файл старее (т.е. удаленный файл свежее).

Bash
ftp> newer myfile1 myfile1


Здесь первый аргумент - имя файла на сервере, а второй аргумент - имя файла на Вашем компьютере.


PUT или SEND

Загрузить на FTP сервер указанный файл с Вашего компьютера.

Bash
ftp> put mylocalfile.txt


MPUT

Загрузить на сервер несколько файлов с Вашего компьютера.

Bash
ftp> mput myfile1.txt myfile2.txt
mput myfile1.txt? y
mput myfile2.txt? y


DELETE

Удалить указанный файл на сервере.

Bash
ftp> delete remotefile.txt


MDELETE

Удалить несколько файлов на сервере.

Bash
ftp> mdelete file1 file2


MKDIR

Создать директорию на сервере.

Bash
ftp> mkdir mynewdir


RMDIR

Удалить директорию на сервере

Bash
ftp> rmdir mydir


PROMPT

Избавляет от необходимости подтверждать получение файлов по маске нажатием клавиши "Y".


HASH

Отображает индикацию загрузки файлов с помощью меток хеширования (#).
Одна такая метка, по-умолчанию = 2048 байт.
Нужно для того, чтобы видеть - не подвисло ли получение больших файлов.


BINARY

Установка режима передачи данных в двоичном формате (подходит для любых типов файлов).


Пример сессии FTP

Вот пример короткой FTP сессии, в которой мы подключаемся к серверу, создаем папку "newfiles" и заливаем в эту папку файл "binfile.bin".
 

Bash
ftp
ftp> open 31.170.155.55 21
ftp> Anonymouse
ftp> 
ftp> mkdir newfiles
ftp> cd newfiles
ftp> put "c:\binfile.bin"
ftp> bye


Для автоматизации рутинной работы можно создать текстовой файл со списком команд, например FTPCommand.txt а затем выполнить код:

Bash
ftp.exe -s:FTPCommand.txt


Для успешного подключения к серверу утилита FTP.exe не должна блокироваться Вашим брандмауером.
Для внесения в список исключений встроенного в ОС Windows можно выполнить код:

Bash
netsh firewall add allowedprogram "%windir%\system32\ftp.exe" ENABLE

via