Основные 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 например:
После нажатия клавиши 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 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-сессии и выхода:
Подробную информацию с описанием команд можно получить с помощью 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-сети.
Коронавирус Coronavirus (COVID-19) и кибермошенники в сети Интернет
Паника вокруг коронавируса COVID-19 используется кибермошенниками в сети Интернет — фишинг, продажа масок, вакцин и тестов.
Не отправляется почта — проверяем не блокирует ли провайдер 25 порт
Проверяем блокирует ли провайдер 25 порт с помощью командной строки в ОС Windows. Как отправлять почту если 25 порт заблокирован.
Как установить Clam AntiVirus (ClamAV) на VPS или сервер с ОС CentOS
Устанавливаем Clam AntiVirus (ClamAV) на VPS / VDS или выделенный сервер с ОС CentOS и настраиваем ежедневное сканирование сервера.
ISPmanager больше не поддерживает резервное копирование в Яндекс.Диск
В течении недели Яндекс.Диск исчезнет из списка хранилища для резервного копирования в панеле ISPmanager и других продуктах ISPsystem.
creating directory in ftp server using ncftp command from ubuntu terminal
How to create a directory in a specific path in Ftp server by using Ncftp command from Ubuntu terminal. Is it possible?
2 Answers 2
ncftpput -u -p -P -m noc.netmihan.com /REMOTE_DIR LOCAL_DIR/example.txt
Look at the ncftp documentation for more info.
When using ncftp you should have the ability to create directories at both a local and remote location:
- lmkdir This command creates directories on the local host
- mkdir This command creates directories on the remote host
Bear in mind that you will need suitable permission on the remote host to create any directories.
Below is an example on my own ftp server, I have obscured the username and password and added in a few arrows:
andrew@corinth:~$ ncftp ftp://username:password@andrews-corner.org/andrews-corner.org/test/ NcFTP 3.2.5 (Feb 02, 2011) by Mike Gleason (http://www.NcFTP.com/contact/). Connecting to 208.113.217.97. DreamHost FTP Server Logging in. User username logged in Logged in to andrews-corner.org. Current remote directory is /andrews-corner.org/test. ncftp /andrews-corner.org/test > mkdir hello_sysadminboy dir <----- drwxr-xr-x 14709624 227249 Sep 12 12:50 hello_sysadminboy quit andrew@corinth:~$
You can see from the above that I have:
- Successfully logged in and automatically changed to a test directory
- Created the remote directory 'hello_sysadminboy'
- Tested the directory with the dir command
If you wanted to script this sort of thing something like the following works well on my system:
#!/bin/sh ncftp ftp://username:password@andrews-corner.org/andrews-corner.org/test/
Unfortunately the mkdir -p command does not work remotely to create nested directories and brace expansion is ignored.