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.