Большинство из нас пользуется для работы с этим протоколом какими-либо утилитами или модулями файловых менеджеров. Но давайте представим себе ситуацию, когда нужно получить доступ к FTP-серверу через командную строку. Никаких панелей со списком файлов и кнопочками "Копировать" и "Удалить" там у Вас не будет. (Кстати, я часто именно через командную строку лажу - мне так просто даже быстрее - если приходится что-то сделать или проверить FTP.)
Итак, команда для работы с FTP как в Windows, так и в Unix (включая Linux Debian, CentOS, ubuntu, rhel, FreeBSD и т.д.) одинаковая - так и называется - "ftp".
Просто подсоединиться к определенному серверу - синтаксис тоже отличаться не будет:
Код Bash
ftp 192.168.0.1
А вот хитрости типа автологина и автоматического принятия или отсылки файлов - у разных ОС немного свои и мы здесь их разбирать не будем. Зато разберем - что же через командрую строку все-же сделать можно в самой сессии - и сами команды, конечно.
Итак, начнем. В этой памятке приведены самые часто используемые команды, которые позволят Вам свободно общаться с любым сервером с любым набором опций.
Команды
Открываем консоль. Запускаем нашу утилиту, введя буквы 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
Код 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
Данный код подходит, как для Windows XP, так и Windows 7. текст взят отсюда