Работа с FTP из терминала Linux
Иногда необходимо работать с FTP из консоли, когда под рукой нет доп. программ и FTP менеджеров. Обычно это бывает нужно что бы перемести сайт с одного хостинга на другой, да есть более правильный способ создать архив всех файлов:
И после забрать все wget -ом на новый хостинг.
Но так можно сделать только том случае если сайт с которого мы забираем архив еще торчит мордой в интернет, что бывает не всегда, например домен не продлен или ns сервера уже другие.
В таких случаях мы можем воспользоваться старым дедовским способом подключения к ftp прямо из терминала:
Попросит логин и пароль и мы в ftp.
Is — Выводит список файлов и директорий.
get — Скачивает файл, с удаленной машины.
mget — Скачивает файлы по маске (например mget * все файлы, mget *. php файлы php)
cd — Это здесь работает исключительно на удаленной машине.
lcd — тоже самое что cd но только для локальной машины (да да это у них разные вещи).
put — Заливает файл на удаленную машину.
mput — Заливает несколько файлов по маске (аналогично mget).
mkdir — Создает каталог.
rmdir — Удалить каталог.
delete — Удаляет файл.
bye — Завершает сеанс FTP–сервером.
binary — Устанавливает бинарный режим передачи файлов.
close — Завершает сеанс FTP и возвращается в контест командной строки FTP.
status — Статус FTP клиента.
Еще один вариант для маргиналов это примаунтить FTP диск:
выставляем на всякий случай максимальные права каталогу в который собираемся монтировать:
Теперь если вы дочитали до конца покажу простой вариант того же самого.
Понадобится Midnight Commander, если не установлен ставим:
Теперь переходим во вкладку Right/Left, без разницы выбираем «FTP link..» :
Адрес хоста можно вводить как что называется без ничего (он сам все попросит логин и пароль), так и как в скриншоте все и сразу
Единственный минус этого способа может быть отрисовка прогресса закачки файла , не проверял, но думаю она не много тормозит процесс в случае если файлов много, но обычно это не критично.
Источник
Основные 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 вывод команды будет следующим:
Другой способ для соединения — это запуск ftp из консоли, а после этого соединение с ftp-сервером с помощью команды open :
Кроме того, возможно соединиться и по ip:
Или с таким обращением ftp user@ftp.site.com , то есть:
Далее необходимо ввести логин и пароль ftp-соединения.
После успешной авторизации будет сообщение такого вида:
Из сообщения видно, что для передачи файлов используется двоичный (бинарный) тип передачи. Двоичный режим передачи файлов — это передача файлов в том виде, в котором они хранятся на FTP сервере. Режим Ascii (текстовый) используется для передачи только текстовых файлов. Вы можете вводить команды ascii или binary для переключения между режимами передачи. Бинарный режим (binary) необходимо использовать для всех нетекстовых типов файлов — изображения, архивы, программы и т.д.
Команды для навигации
Итак, перейдем к командам для навигации и перехода по каталогам ftp-сервера:
pwd — команда покажет текущую директорию на ftp-сервере:
ls — команда покажет список файлов и каталогов в текущей директории:
cd – команда для перехода в нужную директорию:
Проверяем командой pwd :
mkdir — создание новой директории (каталога):
rmdir — удаление директории (каталога):
Удаление файлов на ftp сервере
delete — удаляет файл на удаленном ftp сервере:
Скачивание файлов с ftp
get — скачать файл на локальную машину. get fileName или get fileName newFileName
Скачиваем file.zip на локальную машину как file2.zip:
С помощью команды get с удаленного ftp сервера файлы копируются в текущую локальную директорию. Чтобы изменить текущую локальную директорию нужно использовать команду lcd :
lcd – изменить текущую директорию на локальной машине:
Чтобы скачать несколько файлов с удаленного ftp сервера на локальную машину можно использовать команду mget :
Скачивание каждого файла необходимо подтверждать (да / нет) y/n .
Еще один вариант скачивания mget :
Загрузка файлов на ftp сервер
put — команда для загрузки одного файла на ftp сервер:
Для загрузки нескольких файлов сразу можно использовать команду mput :
Загрузку каждого файла необходимо подтверждать y / n (да / нет).
Еще один вариант команды mput :
Если на фтп загружаются файлы большого размера, то неплохо было бы наблюдать за ходом загрузки. Для этого можно использоваться команды hash и tick .
hash — команда после которой ftp будет печатать символ «#» каждые 1024 байт данных:
tick — команда будет отображать счетчик байтов:
Вот и весь базовый набор команд для работы с ftp в консоле. Для просмотра списка доступных команл на данном FTP сервере можно использовать команду help :
Также, можно получить короткую справку по каждой команде help :
И в завершение, две команды, которые выше quit или bye для закрытия ftp-сессии и выхода:
Подробную информацию с описанием команд можно получить с помощью man ftp в командной строке:
Источник
Ftp from console linux
Команда ftp предназначена для задействования одноименной утилиты, представляющей собой FTP-клиент с интерфейсом командной строки.
Протокол FTP (File Transfer Protocol), как несложно догадаться из его названия, предназначен для передачи файлов между компьютерами. Ввиду того, что он предусматривает передачу паролей без шифрования, он является одним из самых небезопасных сетевых протоколов наряду с протоколом Telnet и не должен использоваться в случае поддержки сервером таких более безопасных протоколов для передачи файлов, как sftp и ftps. Помимо утилиты ftp в Linux для работы с серверами FTP могут также использоваться утилиты с графическим интерфейсом, такие, как Filezilla или Nautilus. FTP-серверы принимают соединения на порту 21; для передачи данных используются другие порты, что затрудняет использование межсетевых экранов.
Базовый синтаксис команды выглядит следующим образом:
$ ftp [параметры] [узел[:порт]]
Утилита работает в интерактивном режиме и поддерживает ограниченное количество параметров. Наиболее важными параметрами являются параметры -4 и -6, позволяющие использовать для связи с сервером лишь протокол IPv4 и IPv6 соответственно, параметр -p, позволяющий активировать пассивный режим (упрощающий работу в системах с межсетевыми экранами, защищающими от соединений извне), параметр -i, позволяющий не выводить запросы при передаче множества файлов в интерактивном режиме, параметр -n, запрещающий читать данные для входа на сервер из файла .netrc в домашней директории и осуществлять автоматический вход, параметр -e, деактивирующий поддержку механизма истории в рамках интерактивной сессии и параметр -g, деактивирующий поддержку механизма шаблонов имен файлов.
Ввиду того, что утилита работает в интерактивном режиме, пользователю придется использовать команды для осуществления передачи файлов. Наиболее важные команды приведены в таблице ниже.
Команда | Назначение |
! [команда] | Выполнить команду в локальной системе |
ascii | Активировать текстовый режим передачи данных (ASCII). Он используется по умолчанию. |
bell | Использовать звуковой сигнал для индикации окончания передач файлов. |
binary | Активировать бинарный режим передачи данных. |
Завершить работу утилиты. | |
cd | Изменить рабочую директорию на удаленной системе. |
chmod | Изменить права доступа к файлу на удаленной системе. |
Завершить сессию FTP с удаленным сервером и вернуться в интерактивный режим. | |
cr | Переключить режим обработки переходов на новые строки. При активации их обработки будет удаляться символ возврата каретки для совместимости с UNIX-системами. |
delete | Удалить файл на удаленной системе. |
debug [уровень отладки] | Активировать режим отладки с заданным уровнем. В этом режиме утилита будет выводить все отправляемые серверу команды и ответы на них. |
Вывести список содержимого директории на удаленной системе или записать его в файл на локальной системе в случае указания имени этого файла. | |
Получить файл с удаленной системы и сохранить его под заданным именем в локальной системе. | |
hash | Выводить символ решетки для индикации передачи каждого 1024-байтового блока. |
Вывести информацию о команде. | |
idle [секунды] | Установить длительность периода ожидания перед автоматическим разрывом соединения с сервером. |
ipany | Использовать IP-адрес любого типа после разрешения имени сервера. |
ipv4 | Использовать адрес IPv4 после разрешения имени сервера. |
ipv6 | Использовать адрес IPv6 после разрешения имени сервера. |
lcd [имя директории] | Изменить рабочую директорию в локальной системе. |
mdelete | Удалить множество перечисленных файлов на удаленной системе. |
Вывести список содержимого множества перечисленных директорий на удаленной системе или записать его в файл на локальной системе в случае указания имени этого файла. | |
mget [имена удаленных файлов] | Получить множество перечисленных файлов с удаленной системы и сохранить его в локальной системе. |
mkdir | Создать директорию с заданным именем на удаленной системе. |
modtime | Показать время последней модификации файла на удаленной системе. |
mput | Загрузить множество перечисленных локальных файлов на удаленную систему. |
newer [имя локального файла] | Загрузить указанный файл с удаленной системы лишь в том случае, если он был изменен позднее указанного файла с локальной системы. |
open [порт] | Установить соединение с сервером с заданным адресом и портом. |
passive | Включить/выключить пассивный режим. |
prompt | Переключить режим вывода подтверждений при передаче множества файлов. |
Загрузить указанный локальный файл на удаленную систему под заданным именем. | |
pwd | Вывести имя текущей директории на удаленной системе. |
reget [имя локального файла] | Продолжить загрузку файла с заданным именем с удаленной системы с сохранением этого файла под заданным именем на локальной системе. |
rename [имя файла] [новое имя файла] | Сменить имя файла на удаленной системе. |
rmdir | Удалить директорию на удаленной системе. |
size | Вывести размер файла на удаленной системе. |
system | Вывести информацию об операционной системе сервера. |
umask | Установить значение маски прав доступа для загружаемых на сервер файлов. |
user [пароль] | Представиться серверу. |
Установка утилиты
В том случае, если в комплекте поставки вашего дистрибутива не содержится утилиты ftp, вам придется установить ее; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды. Подробнее об установке программного обеспечения рассказано в данном разделе.
Команда для Linux Mint и Ubuntu:
$ sudo apt-get install ftp
Команда для Fedora Workstation:
$ sudo dnf install ftp
Примеры использования
Загрузка файлов на сервер
Для начала нужно соединиться с сервером. В данном случае используется анонимный сервер TELE2, поэтому в качестве имени пользователя вводится anonymous, а в качестве пароля — пустая строка (для ее ввода достаточно просто нажать на клавишу Enter).
$ ftp speedtest.tele2.net
Connected to speedtest.tele2.net.
220 (vsFTPd 2.3.5)
Name (speedtest.tele2.net:alexu): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
Сервер позволяет загружать файлы лишь в директорию upload, поэтому следует перейти в нее.
ftp> cd upload
250 Directory successfully changed.
Для корректной загрузки нужно активировать пассивный режим:
ftp> passive
Passive mode on.
Теперь можно перейти в директорию с загружаемыми файлами на локальной системе и использовать команду mput для загрузки файлов. Команда поддерживает шаблоны имен файлов и именно с помощью такого шаблона на сервер загружаются три файла изображения:
ftp> lcd nolf228/
Local directory now /home/alexu/nolf228
ftp> mput *.jpg
mput nolf228.jpg? y
227 Entering Passive Mode (90,130,70,73,97,210).
150 Ok to send data.
226 Transfer complete.
190576 bytes sent in 0.16 secs (1.1299 MB/s)
mput splash1024.jpg? y
227 Entering Passive Mode (90,130,70,73,86,152).
150 Ok to send data.
226 Transfer complete.
270176 bytes sent in 0.21 secs (1.2126 MB/s)
mput splash1280.jpg? y
227 Entering Passive Mode (90,130,70,73,84,122).
150 Ok to send data.
226 Transfer complete.
385734 bytes sent in 0.40 secs (943.9138 kB/s)
Для завершения работы утилиты достаточно ввести команду quit:
ftp> quit
221 Goodbye.
Загрузка файлов с сервера
Как и в случае загрузки файлов на сервер, в первую очередь нужно соединиться с ним. В случае анонимного сервера TELE2 используется имя пользователя anonymous и пустой пароль (ввод которого осуществляется путем простого нажатия на клавишу Enter):
$ ftp speedtest.tele2.net
Connected to speedtest.tele2.net.
220 (vsFTPd 2.3.5)
Name (speedtest.tele2.net:alexd): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
Для корректной загрузки файлов необходимо активировать пассивный режим:
ftp> passive
Passive mode on.
Чтобы убедиться в наличии на сервере нужных файлов, следует вывести список файлов из текущей директории сервера с помощью команды ls:
ftp> ls
227 Entering Passive Mode (90,130,70,73,94,9).
150 Here comes the directory listing.
-rw-r—r— 1 0 0 1073741824000 Feb 19 2016 1000GB.zip
-rw-r—r— 1 0 0 107374182400 Feb 19 2016 100GB.zip
-rw-r—r— 1 0 0 102400 Feb 19 2016 100KB.zip
-rw-r—r— 1 0 0 104857600 Feb 19 2016 100MB.zip
-rw-r—r— 1 0 0 10737418240 Feb 19 2016 10GB.zip
-rw-r—r— 1 0 0 10485760 Feb 19 2016 10MB.zip
-rw-r—r— 1 0 0 1073741824 Feb 19 2016 1GB.zip
-rw-r—r— 1 0 0 1024 Feb 19 2016 1KB.zip
-rw-r—r— 1 0 0 1048576 Feb 19 2016 1MB.zip
-rw-r—r— 1 0 0 209715200 Feb 19 2016 200MB.zip
-rw-r—r— 1 0 0 20971520 Feb 19 2016 20MB.zip
-rw-r—r— 1 0 0 2097152 Feb 19 2016 2MB.zip
-rw-r—r— 1 0 0 3145728 Feb 19 2016 3MB.zip
-rw-r—r— 1 0 0 524288000 Feb 19 2016 500MB.zip
-rw-r—r— 1 0 0 53687091200 Jul 24 2014 50GB.zip
-rw-r—r— 1 0 0 52428800 Feb 19 2016 50MB.zip
-rw-r—r— 1 0 0 524288 Feb 19 2016 512KB.zip
-rw-r—r— 1 0 0 5242880 Feb 19 2016 5MB.zip
drwxr-xr-x 2 106 109 69632 Apr 01 13:41 upload
226 Directory send OK.
Для загрузки отдельного файла используется команда get:
ftp> get 1MB.zip
local: 1MB.zip remote: 1MB.zip
227 Entering Passive Mode (90,130,70,73,99,63).
150 Opening BINARY mode data connection for 1MB.zip (1048576 bytes).
226 Transfer complete.
1048576 bytes received in 4.15 secs (247.0279 kB/s)
И, как обычно, работа с утилитой заканчивается вводом команды quit:
Источник