31.01.2017

Основные FTP команды в Linux

Основные FTP команды в Linux

FTP (File Transfer Protocol - протокол передачи файлов) - это популярный сетевой протокол, который используется для копирования файлов с одного компьютера на другой в локальной сети, либо в сети Интернет. FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, и даже до TCP/IP, в 1971 году.

Протокол FTP уязвим, то есть FTP не может зашифровать свой трафик, все передачи - открытый текст, поэтому имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Для безопасной передачи данных, используется протокол SFTP (Secure File Transfer Protocol). В отличие от стандартного FTP он шифрует и команды, и данные, защищая пароли и конфиденциальную информацию от открытой передачи через сеть. По функциональности SFTP похож на FTP, но так как он использует другой протокол, клиенты стандартного FTP не могут связаться с SFTP-сервером и наоборот. Далее рассмотрим основные команды для работы с FTP программой.

FTP соединение

FTP клиент входит в большинство дистрибутивов Linux. Начнем с запуска программы и ftp соединением и, конечно, рассмотрим основные команды для скачивания с фтп-сервера и загрузки на фтп, создание директорий, удаление файлов и т.п. В этой статье опишем лишь основные команды, а в конце статьи приведем хелп и мануал из консоли - Вы всегда можете узнать о назначении команды и ее синтаксисе, а также обо всех доступных командах на конкретном ftp-сервере.

Для начала фтп соединения достаточно ввести команду ftp <сервер> например:

ftp test.hostingthutor.com

После нажатия клавиши enter вывод команды будет следующим:

Connected to test.hostinghutor.com (114.55.5.11).
220 test.hostinghutor.com FTP Server ready.
Name (test.hostinghutor.com:ftpuser):

Другой способ для соединения - это запуск ftp из консоли, а после этого соединение с ftp-сервером с помощью команды open:

ftp
ftp> test.hostinghutor.com

Кроме того, возможно соединиться и по ip:

ftp  114.55.5.11

Или с таким обращением ftp user@ftp.site.com, то есть:

ftp ftpuser@test.hostinghutor.com

Далее необходимо ввести логин и пароль ftp-соединения.

После успешной авторизации будет сообщение такого вида:

230 User ftpuser logged in
Remote system type is UNIX.
Using binary mode to transfer files.                                           
ftp>

Из сообщения видно, что для передачи файлов используется двоичный (бинарный) тип передачи. Двоичный режим передачи файлов - это передача файлов в том виде, в котором они хранятся на FTP сервере. Режим Ascii (текстовый) используется для передачи только текстовых файлов. Вы можете вводить команды ascii или binary для переключения между режимами передачи. Бинарный режим (binary) необходимо использовать для всех нетекстовых типов файлов - изображения, архивы, программы и т.д.

Команды для навигации

Итак, перейдем к командам для навигации и перехода по каталогам ftp-сервера:

pwd - команда покажет текущую директорию на ftp-сервере:

ftp> pwd
257 "/" is the current directory

ls - команда покажет список файлов и каталогов в текущей директории:

ftp> ls
227 Entering Passive Mode.
150 Opening ASCII mode data connection for file list
-rw-r--r--   1 ftpuser  ftpuser  3034978 Jun 31 19:02 file1.tar.gz
-rw-r--r--   1 ftpuser  ftpuser  30842294 Jul 31 20:08 file2.tar.gz
-rw-r--r--   1 ftpuser  ftpuser  67798316 Jul 31 19:46 file3.tar.gz
-rw-r--r--   1 ftpuser  ftpuser  6001252 Jan 17 12:02 file4.zip
-rw-r--r--   1 ftpuser  ftpuser  31386394 Jan 17 11:28 file5.tar.gz
drwxr-xr-x   2 ftpuser  ftpuser         4 Jan 17 20:23 www
-rw-r--r--   1 ftpuser  ftpuser  48546694 Jan 17 11:33 file6.zip
226 Transfer complete

cd <имя директории> – команда для перехода в нужную директорию:

ftp> cd www
250 CWD command successful

Проверяем командой pwd:

ftp> pwd
257 "/www" is the current directory

mkdir <имя директории> - создание новой директории (каталога):

ftp> mkdir tmp
257 "/tmp" - Directory successfully created

rmdir <имя директории> - удаление директории (каталога):

ftp> rmdir tmp
250 RMD command successful

Удаление файлов на ftp сервере

delete <имя файла> - удаляет файл на удаленном ftp сервере:

ftp> delete test1.sql
250 DELE command successful

Скачивание файлов с ftp

get - скачать файл на локальную машину. get fileName или get fileName newFileName

ftp> get file.zip
local: file.zip remote: file.zip
227 Entering Passive Mode.
150 Opening BINARY mode data connection for file.zip (486694 bytes)
226 Transfer complete
486694 bytes received in 0.229 secs (6.5e+04 Kbytes/sec)

Скачиваем file.zip на локальную машину как file2.zip:

ftp> get file.zip file2.zip
local: file2.zip remote: file.zip
227 Entering Passive Mode .
150 Opening BINARY mode data connection for file.zip (486694 bytes)
226 Transfer complete
486694 bytes received in 0.306 secs (9.4e+04 Kbytes/sec)

С помощью команды get с удаленного ftp сервера файлы копируются в текущую локальную директорию. Чтобы изменить текущую локальную директорию нужно использовать команду lcd:

lcd <путь> – изменить текущую директорию на локальной машине:

ftp> lcd /root
Local directory now /root

Чтобы скачать несколько файлов с удаленного ftp сервера на локальную машину можно использовать команду mget:

ftp> mget *.sql
mget test2.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test2.sql (23957080 bytes)
226 Transfer complete
23957080 bytes received in 0.233 secs (1e+05 Kbytes/sec)
mget test1.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test1.sql (11873185 bytes)
226 Transfer complete
11873185 bytes received in 0.135 secs (8.6e+04 Kbytes/sec)

Скачивание каждого файла необходимо подтверждать (да / нет) y/n.

Еще один вариант скачивания mget:

ftp> mget test1.sql test2.sql
mget test1.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test1.sql (11873185 bytes)
226 Transfer complete
11873185 bytes received in 0.101 secs (1.1e+05 Kbytes/sec)
mget test2.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test2.sql (23957080 bytes)
226 Transfer complete
23957080 bytes received in 0.204 secs (1.1e+05 Kbytes/sec)

Загрузка файлов на ftp сервер

put <имяфайла> - команда для загрузки одного файла на ftp сервер:

ftp> put test1.sql
local: test1.sql remote: test1.sql
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test1.sql
226 Transfer complete
11873185 bytes sent in 0.129 secs (9e+04 Kbytes/sec)

Для загрузки нескольких файлов сразу можно использовать команду mput:

ftp> mput test1.sql test2.sql
mput test1.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test1.sql
226 Transfer complete
11873185 bytes sent in 0.0964 secs (1.2e+05 Kbytes/sec)
mput test2.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test2.sql
226 Transfer complete
23957080 bytes sent in 0.354 secs (6.6e+04 Kbytes/sec)

Загрузку каждого файла необходимо подтверждать y / n (да / нет).

Еще один вариант команды mput:

ftp> mput *.sql
mput test1.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test1.sql
226 Transfer complete
11873185 bytes sent in 0.0985 secs (1.2e+05 Kbytes/sec)
mput test2.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test2.sql
226 Transfer complete
23957080 bytes sent in 0.2 secs (1.2e+05 Kbytes/sec)

Если на фтп загружаются файлы большого размера, то неплохо было бы наблюдать за ходом загрузки. Для этого можно использоваться команды hash и tick.

hash - команда после которой ftp будет печатать символ «#» каждые 1024 байт данных:

ftp> hash
Hash mark printing on (1024 bytes/hash mark).
put file2.tar.gaz
##########################
226 Transfer complete
785888111 bytes sent in 6.94 secs (1.1e+05 Kbytes/sec)

tick - команда будет отображать счетчик байтов:

ftp> tick
Hash mark printing off.
Tick counter printing on (10240 bytes/tick increment).
ftp> put file2.tar.gz
local: file2.tar.gz remote: file2.tar.gz
227 Entering Passive Mode.
150 Opening BINARY mode data connection for file2.tar.gz
Bytes transferred: 912706618 //-> счетчик
226 Transfer complete
912706618 bytes sent in 8.08 secs (1.1e+05 Kbytes/sec)

Вот и весь базовый набор команд для работы с ftp в консоле. Для просмотра списка доступных команл на данном FTP сервере можно использовать команду help:

ftp> help
Commands may be abbreviated.  Commands are:

!               debug           mdir            sendport        site
$               dir             mget            put             size
account         disconnect      mkdir           pwd             status
append          exit            mls             quit            struct
ascii           form            mode            quote           system
bell            get             modtime         recv            sunique
binary          glob            mput            reget           tenex
bye             hash            newer           rstatus         tick
case            help            nmap            rhelp           trace
cd              idle            nlist           rename          type
cdup            image           ntrans          reset           user
chmod           lcd             open            restart         umask
close           ls              prompt          rmdir           verbose
cr              macdef          passive         runique         ?
delete          mdelete         proxy           send   

Также, можно получить короткую справку по каждой команде help <команда>:

ftp> help status
status          show current status 

ftp> help quit
quit            terminate ftp session and exit 

ftp> help bye
bye             terminate ftp session and exit

И в завершение, две команды, которые выше quit или bye для закрытия ftp-сессии и выхода:

ftp> quit
221 Goodbye. 

Подробную информацию с описанием команд можно получить с помощью man ftp в командной строке:

# man ftp
Formatting page, please wait...
FTP(1)                    BSD General Commands Manual                   FTP(1)

NAME
     ftp - Internet file transfer program

SYNOPSIS
     ftp [-Apinegvd] [host]
     pftp [-Apinegvd] [host]
................
...............

Последние новости

Скидка на все домены Украины до 21.10.2022!
14.10.2022
Скидка на все домены Украины до 21.10.2022!
Уважаемые пользователи! Целую неделю у нас скидка -15% на регистрацию всех украинских доменов по промокоду defendersday22!
Подорожание ряда украинских доменов UA ccTLD!
28.09.2022
Подорожание ряда украинских доменов UA ccTLD!
Уважаемые пользователи! С 1 октября 2022 нас ждет подорожание в ряде украинских доменов - in.ua, od.ua, mk.ua!
Важные изменения в работе ряда украинских доменных имен!
09.03.2022
Важные изменения в работе ряда украинских доменных имен!
Уважаемые пользователи! В некоторых украинских доменных зонах увеличен срок периода Redemption с 30 до 60 дней.
Существенное подорожание выделенных IP-адресов (IPv4) в Германии!
09.08.2021
Существенное подорожание выделенных IP-адресов (IPv4) в Германии!
Уважаемые пользователи! В Германии существенно подорожали дополнительные выделенные IP-адреса (IPv4) и IP-сети.

Последнее в блоге

Коронавирус Coronavirus (COVID-19) и кибермошенники в сети Интернет
02.03.2020
Коронавирус Coronavirus (COVID-19) и кибермошенники в сети Интернет
Паника вокруг коронавируса COVID-19 используется кибермошенниками в сети Интернет - фишинг, продажа масок, вакцин и тестов.
Не отправляется почта - проверяем не блокирует ли провайдер 25 порт
11.01.2020
Не отправляется почта - проверяем не блокирует ли провайдер 25 порт
Проверяем блокирует ли провайдер 25 порт с помощью командной строки в ОС Windows. Как отправлять почту если 25 порт заблокирован.
Как установить Clam AntiVirus (ClamAV) на VPS или сервер с ОС CentOS
11.11.2019
Как установить Clam AntiVirus (ClamAV) на VPS или сервер с ОС CentOS
Устанавливаем Clam AntiVirus (ClamAV) на VPS / VDS или выделенный сервер с ОС CentOS и настраиваем ежедневное сканирование сервера.
ISPmanager больше не поддерживает резервное копирование в Яндекс.Диск
20.10.2019
ISPmanager больше не поддерживает резервное копирование в Яндекс.Диск
В течении недели Яндекс.Диск исчезнет из списка хранилища для резервного копирования в панеле ISPmanager и других продуктах ISPsystem.