04.09.2016
Все мы знаем сочетание буковок FTP, которое расшифровывается как File Transfer Protocol: старая, но до сих используемая технология передачи файлов между двумя компьютерами с использованием TCP/IP сети.
Большинство из нас пользуется для работы с этим протоколом какими-либо утилитами или модулями файловых менеджеров. Но давайте представим себе ситуацию, когда нужно получить доступ к FTP-серверу через командную строку. Никаких панелей со списком файлов и кнопочками "Копировать" и "Удалить" там у Вас не будет.
Итак, команда для работы с FTP как в Windows, так и в Unix (включая Linux Debian, CentOS, ubuntu, rhel, FreeBSD и т.д.) одинаковая - так и называется - "ftp".
Просто подсоединиться к определенному серверу - синтаксис тоже отличаться не будет: ftp 192.168.0.1
А вот хитрости типа автологина и автоматического принятия или отсылки файлов - у разных ОС немного свои и мы здесь их разбирать не будем. Зато разберем - что же через командную строку все-же сделать можно в самой сессии - и сами команды, конечно.
Итак, начнем. В этой памятке приведены самые часто используемые команды, которые позволят Вам свободно общаться с любым сервером с любым набором опций.
Открываем консоль. Запускаем нашу утилиту, введя буквы ftp. Видим на экране приглашение: ftp>
HELP Выдает список поддерживаемых команд
? имя команды Получение короткого описания указанной команды.
OPEN Присоединиться к указанному серверу (пишем его имя либо IP-адрес). Также можно указать порт через пробел. По-умолчанию используется стандартный - 21. ftp> open ftp.microsoft.com При этом сервер Вас спросит логин и пароль.
CLOSE или DISCONNECT Закрыть соединение с текущим FTP сервером. ftp> close
BYE или QUIT Закрыть соединение и выйти из утилиты FTP. ftp> bye
USER Залогиниться на данном сервере под указанным пользователем (Вы должны быть уже подключены). ftp> user myusername где вместо "myusername" подставьте имя пользователя, под которым логинитесь. FTP-сервер Вас спросит пароль для этого пользователя перед тем, как пустить.
LS или DIR Показать список файлов и директорий в текущей папке на сервере. ftp> ls
MLS или MDIR Выгрузить список файлов из нескольких директорий в файл на Ваш компьютер. ftp> mls dir1 dir2 dir3 mylocalfile.txt
CD Перейти в указанную папку на сервере. ftp> cd ../another/folder Частный случай этой команды: CDUP - перейти в родительскую директорию - то же самое, что и "CD ..": ftp> cdup
LCD Перейти в указанную папку на Вашем компьютере. ftp> lcd d:\temp
PWD Показать текущий путь (текущую папку) на FTP сервере. ftp> pwd
GET или RECV Загрузить с FTP сервера в текущую папку Вашего компьютера указанный файл. ftp> get myftpfile.txt
MGET Загрузить несколько файлов в текущую папку Вашего компьютера с сервера FTP. ftp> mget file1.txt file2.txt mget file1.txt? y mget file2.txt? y
NEWER Загрузить с сервера FTP на Ваш компьютер указанный файл только если Ваш файл старее (т.е. удаленный файл свежее). ftp> newer myfile1 myfile1 Здесь первый аргумент - имя файла на сервере, а второй аргумент - имя файла на Вашем компьютере.
PUT или SEND Загрузить на FTP сервер указанный файл с Вашего компьютера. ftp> put mylocalfile.txt
MPUT Загрузить на сервер несколько файлов с Вашего компьютера. ftp> mput myfile1.txt myfile2.txt mput myfile1.txt? y mput myfile2.txt? y
DELETE Удалить указанный файл на сервере. ftp> delete remotefile.txt
MDELETE Удалить несколько файлов на сервере. ftp> mdelete file1 file2
MKDIR Создать директорию на сервере. ftp> mkdir mynewdir
RMDIR Удалить директорию на сервере ftp> rmdir mydir
PROMPT Избавляет от необходимости подтверждать получение файлов по маске нажатием клавиши "Y".
HASH Отображает индикацию загрузки файлов с помощью меток хеширования (#). Одна такая метка, по-умолчанию = 2048 байт. Нужно для того, чтобы видеть - не подвисло ли получение/отправка больших файлов.
BINARY Установка режима передачи данных в двоичном формате (подходит для любых типов файлов).
SITE CHMOD Изменение прав на файл. Если сервер поддерживает команду SITE которая должна быть в списке выдаваемым командой HELP, и если сервер линуксовый: SITE CHMOD 777 file1.txt
QUOTE PASV Переход в пассивный режим передачи данных.
Пример сессии FTP Вот пример короткой FTP сессии, в которой мы подключаемся к серверу, создаем папку "newfiles" и заливаем в эту папку файл "binfile.bin". 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 а затем выполнить код: ftp.exe -s:FTPCommand.txt
Исключения для файрвола Для успешного подключения к серверу утилита FTP.exe не должна блокироваться Вашим брандмауером.
Для внесения в список исключений встроенного в ОС Windows можно выполнить код: netsh firewall add allowedprogram "%windir%\system32\ftp.exe" ENABLE
Данный код подходит, как для Windows XP, так и Windows 7.
Начиная с Windows Vista, алиас firewall считается устаревшив, хотя все еще поддерживается.
Новый формат команды выглядит так: :: для входящих соединений netsh advfirewall firewall add rule name="FTP_in" dir=in action=allow program="%windir%\system32\ftp.exe" enable=yes
:: для исходящих соединений netsh advfirewall firewall add rule name="FTP_out" dir=out action=allow program="%windir%\system32\ftp.exe" enable=yes (+нужен запуск с повышенными правами).
Если вам лень использовать команды для работы с FTP-сервером, можно использовать специальные FTP-клиенты. Одним из таких клиентов является программа FileZilla.
|