FTP (File Transfer Protocol) — это стандартный сетевой протокол, используемый для передачи файлов в удаленную сеть и из нее.
В этой стать мы покажем вам, как использовать команду ftp в linux с помощью практических примеров.
В большинстве случаев вы будете использовать настольный FTP-клиент для подключения к удаленному серверу и загрузки или выгрузки файлов. Однако команда ftp
полезна, когда вы работаете на сервере без GUI и вы хотите передавать файлы через FTP или с удаленного сервера.
При передаче данных по ftp оба соединения не шифруются. Для безопасной передачи данных, использовать протокол SFTP.
Чтобы иметь возможность копировать файлы, необходимо иметь по крайней мере разрешения на чтение исходного файла и разрешение на запись в целевой системе.
При передаче больших файлов рекомендуется для запуска команд FTP в экране или сессии tmux.
Каталог, из которого вы выполните команду ftp
в локальный рабочий каталог.
ftp
с удаленным сервером, наберите IP-адрес или доменное имя:ftp 192.168.42.77
andreyex:
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 21:35. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (192.168.42.77:localuser): andreyex
Password:
ftp>
.230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Если FTP-сервер, к которому вы обращаетесь, принимает анонимные FTP-аккаунты, и вы хотите войти как анонимный пользователь, Используйте anonymous
как имя пользователя и ваш адрес электронной почты в качестве пароля.
Многие команды FTP похожи или идентичны командам, которые вы вводите в командной строке оболочки Linux.
Ниже приведены некоторые из наиболее распространенных команд FTP
help
или ?
— список всех доступных команд FTPcd
— изменить каталог на удаленном компьютереlcd
— изменить каталог на локальном компьютереls
— список имен файлов и каталогов в текущем удаленном каталогеmkdir
— создать новый каталог в текущем удаленном каталогеpwd
— печать текущего рабочего каталога на удаленном компьютереdelete
— удалить файл в текущем удаленном каталогеrmdir
— удалить каталог в текущем удаленном каталогеget
— скопировать один файл с удаленного компьютера на локальный компьютерmget
— копирование нескольких файлов с удаленного компьютера на локальный компьютерput
— скопировать один файл с локального компьютера на удаленныйmput
— скопировать один файл с локального компьютера на удаленныйПосле входа в систему, отобразится текущий рабочий каталог — это домашний каталог удаленных пользователей.
При загрузке файлов с помощью команды ftp
, файлы будут загружены в каталог, из которого вы набрали команду ftp
.
Если вы хотите загрузить файлы на другой локальный каталог, переключитесь на него с помощью команды lcd
.
Допустим, мы хотим скачать файлы в каталог ~/ftp_downloads
:
lcd ~/ftp_downloads
Для того, чтобы скачать один файл с удаленного сервера, используйте команду get
. Например, чтобы скачать файл backup.zip
, используйте следующую команду:
Выходные данные должны выглядеть примерно так:
200 PORT command successful
150-Connecting to port 60609
150 6516.9 kbytes to download
226-File successfully transferred
226 2.356 seconds (measured here), 2.70 Mbytes per second
6673256 bytes received in 2.55 seconds (2.49 Mbytes/s)
Чтобы загрузить сразу несколько файлов, используйте команду mget
. Можно указать список отдельных имен файлов или использовать подстановочные знаки.
mget backup1.zip backup2.zip
При загрузке нескольких файлов будет предложено подтверждение для каждого файла.
mget backup1.zip? y
200 PORT command successful
150 Connecting to port 52231
226-File successfully transferred
226 0.000 seconds (measured here), 31.51 Kbytes per second
14 bytes received in 0.00058 seconds (23.6 kbytes/s)
mget backup2.zip? y
200 PORT command successful
150-Connecting to port 59179
150 7.2 kbytes to download
226-File successfully transferred
226 0.000 seconds (measured here), 16.68 Mbytes per second
7415 bytes received in 0.011 seconds (661 kbytes/s)
Как только вы закончите загрузку файлов с удаленного FTP — сервер закрывает соединение с bye
или quit
.
quit
221-Goodbye. You uploaded 0 and downloaded 6544 kbytes.
221 Logout.
Чтобы загрузить файл из локального каталога на удаленный FTP-сервер, используйте команду put
:
put image.jpg
Выходные данные должны выглядеть примерно так:
200 PORT command successful
150 Connecting to port 34583
226-File successfully transferred
226 0.849 seconds (measured here), 111.48 Kbytes per second
96936 bytes sent in 0.421 seconds (225 kbytes/s)
Если вы хотите загрузить файл, который не находится в вашем текущем рабочем каталоге, используйте абсолютный путь к файлу.
Чтобы загрузить несколько файлов из локального каталога на удаленный FTP-сервер, используйте команду mput
:
mput image_andreyex.jpg image2.jpg
mput image_andreyex.jpg? y
200 PORT command successful
150 Connecting to port 41075
226-File successfully transferred
226 1.439 seconds (measured here), 114.32 Kbytes per second
164204 bytes sent in 0.76 seconds (216 kbytes/s)
mput image2.jpg? y
200 PORT command successful
150 Connecting to port 40759
226-File successfully transferred
226 1.727 seconds (measured here), 111.75 Kbytes per second
195836 bytes sent in 1.25 seconds (141 kbytes/s)
При загрузке нескольких файлов вам будет предложено подтверждение для каждого файла, который вы хотите загрузить.
Как только вы закончите загрузку файлов на удаленный FTP-сервер, сервер закрывает соединение с bye
или quit
.
В этой статье вы узнали, как использовать команду ftp для загрузки и передачи файлов на удаленный FTP-сервер.
Лучше использовать ftp -i 192.168.42.77
тогда не будет запроса при загрузке каждого файла