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