Основные 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.
How to list directory content of remote FTP, recursively
After downloading files from a remote UNIX FTP server, you want to verify that you have downloaded all the files correctly. Minimal you will get information similar to «dir /s» command in Windows command prompt. The FTP client runs on Windows.
5 Answers 5
Sadly this was written for Unix/Linux users :/
Personally, I would install CYGWIN just to get Linux binaries of LFTP/RSYNC to work on windows, as there appears not to be anything that competes with it.
As @zadok.myopenid.com mentioned rsync, this appears to be a windows build for it using CYGWIN ( if you manage to be able to get ssh access to the box eventually )
Rsync is handy in that it will compare everything with check sums, and optimally transfer partial change blocks.
http://lftp.yar.ru/ is my favorite exploration tool for this.
It can do almost everything bash can do, albeit remotely.
$ lftp mirror.3fl.net.au lftp mirror.3fl.net.au:~> ls drwxr-xr-x 14 root root 4096 Nov 27 2007 games drwx------ 2 root root 16384 Apr 13 2006 lost+found drwxr-xr-x 15 mirror mirror 4096 Jul 15 05:20 pub lftp mirror.3fl.net.au:/> cd games/misc lftp mirror.3fl.net.au:/games/misc>find ./ ./dreamchess/ ./dreamchess/full_game/ ./dreamchess/full_game/dreamchess-0.2.0-win32.exe ./frets_on_fire/ ./frets_on_fire/full_game/ ./frets_on_fire/full_game/FretsOnFire-1.2.451-macosx.zip ./frets_on_fire/full_game/FretsOnFire-1.2.512-win32.zip ./frets_on_fire/full_game/FretsOnFire_ghc_mod.zip ./gametap_setup.exe . lftp mirror.3fl.net.au:/games/misc> du gametap_setup.exe 32442 gametap_setup.exe lftp mirror.3fl.net.au:/games/misc> du -sh gametap_setup.exe 32M gametap_setup.exe lftp mirror.3fl.net.au:/games/misc>