Облачное хранилище и консольные FTP-клиенты

Об особенностях работы с нашим хранилищем по FTP мы уже писали. Сегодня мы затронем более узкую и специальную тему и обсудим особенности работы с хранилищем с помощью консольных FTP-клиентов, довольно часто используемых для организации резервного копирования и архивирования.

Все эти клиенты отличаются своеобразным и довольно сложным синтаксисом команд. Чтобы наши пользователи не испытывали трудностей и не тратили время на поиск по мануалам при написании соответствующих скриптов, мы решили составить небольшую шпаргалку с примерами команд для выполнения наиболее распространенных операций:

  • загрузки файлов в хранилище;
  • скачивания файлов с возможностью возобновления при отмене или обрыве соединения;
  • синхронизации локальных файлов с файлами в хранилище и наоборот.

LFTP

Загрузка одного файла в хранилище:

$ lftp -e 'cd /container/; put /path/to/local/file; bye' -u xxxx_ftp,Pas$w0rD ftp.selcdn.ru

(здесь и далее вместо xxxx_ftp указываем имя пользователя, вместо Pas$w0rD — свой пароль, containter — имя контейнера; вместо /path/to/local/file — путь к файлу на локальной машине).

Загрузка папки со всеми файлами в ней:

$ lftp -e 'mirror -R /path/to/local/dir/ /container/; bye' -u xxxx_ftp,Pas$w0rD ftp.selcdn.ru

(здесь и далее вместо /path/to/local/dir/ указываем путь к папке на локальной машине).

При повторном выполнении операции загрузки файлов осуществляется синхронизация содержимого контейнера и соответствующей папки на локальной машине: в хранилище будут загружены только файлы, которые отсутствовали на момент предыдущей загрузки.

С помощью опции —delete можно удалять из хранилища файлы, которых уже нет на локальной машине. Она может быть полезна для очистки хранилища от файлов, утративших свою актуальность.

$ lftp -e 'mirror --delete -R /path/to/local/dir/ /container/; bye' -u xxxx_ftp,Pas$w0rD ftp.selcdn.ru

Скачивание одного файла из хранилища на локальную машину:

$ lftp -e 'get /container/file -o to-dir/; bye' -u xxxx_ftp,Pas$w0rD ftp.selcdn.ru

Возобновление скачивания (например, в случае, если произошел разрыв соединения или операция загрузки была прервана):

$ lftp -e 'get -c /container/file -o to-dir/; bye' -u xxxx_ftp,Pas$w0rD ftp.selcdn.ru

Скачивание из хранилища папки со всем содержимым:

$ lftp -e 'mirror /container/ to-dir/; bye' -u xxxx_ftp,Pas$w0rD ftp.selcdn.ru

Опция -P для предыдущей команды позволяет выполнить скачивание в несколько потоков, что может ускорить всю операцию в целом:

$ lftp -e 'mirror -P 10 /container/ to-dir/; bye' -u xxxx_ftp,Pas$w0rD ftp.selcdn.ru

Все рассмотренные команды можно выполнять в интерактивном режиме. Вход в интерактивный режим осуществляется с помощью команды:

$ lftp -u xxxx_ftp,Pas$w0rD ftp.selcdn.ru

NCFTP

Загрузка одного файла в хранилище:

$ ncftpput -u xxxx_ftp -p pas$w0rD ftp.selcdn.ru /container/ /path/to/local/file

NCFTP поддерживает автоматическое повторение операции в случае возникновения ошибок при ее выполнении; для этого нужно использовать опцию -r:

# повторять попытку 5 раз
$ ncftpput -r 5 -u xxxx_ftp -p pas$w0rD ftp.selcdn.ru /container/ /path/to/local/file

Загрузка папки со всеми файлами в ней:

$ ncftpput -R -r 5 -u xxxx_ftp -p pas$w0rD ftp.selcdn.ru /container/ /path/to/local/dir/

Синхронизация локальных файлов с хранилищем:

$ ncftpput -z -R -r 5 -u xxxx_ftp -p pas$w0rD ftp.selcdn.ru /container/ /path/to/local/dir/

Скачивание из хранилища одного файла:

ncftpget -u xxxx_ftp -p pas$w0rD ftp.selcdn.ru to-dir/ /container/file

Возобновление скачивания, опция -z:

$ ncftpget -z -u xxxx_ftp -p pas$w0rD ftp.selcdn.ru to-dir /container/file

Загрузка на локальную машину папки с файлами:

$ ncftpget -R -u xxxx_ftp -p pas$w0rD ftp.selcdn.ru to-dir/ /container/dir/

# докачать
$ ncftpget -R -z -u xxxx_ftp -p pas$w0rD ftp.selcdn.ru to-dir /container/dir/

Wget

Скачивание одного файла на локальную машину:

# файл будет загружен в текущую папку
$ wget ftp://xxxx_ftp:pas$w0rD@ftp.selcdn.ru/container/file
# в указанную папку
$ wget -с ftp://xxxx_ftp:pas$w0rD@ftp.selcdn.ru/container/file

Скачать на локальную машину папки с файлами:

$ wget -r ftp://xxxx_ftp:pas$w0rD@ftp.selcdn.ru/container/dir/
# докачать недостающие файлы
$ wget -r -с ftp://xxxx_ftp:pas$w0rD@ftp.selcdn.ru/container/dir/

cURL

Загрузка одного файла в хранилище:

$ curl ftp://ftp.selcdn.ru/container/ --user xxxx_ftp:pas$w0rD -T /path/to/local/file

Скачивание файла на локальную машину:

# обязательно  нужно указать имя файла для сохранения (опция -o)
$ curl ftp://ftp.selcdn.ru/container/file --user xxxx_ftp:pas$w0rD -o file

Поддержка протокола SFTP

Теперь наше хранилище поддерживает и доступ по протоколу SFTP — пока что в режиме тестирования.

Приглашаем всех заинтересованных читателей попробовать новую возможность. Для подключения нужно указывать хост sftp.selcdn.ru. Обо всех ошибках и проблемах с доступом по SFTP обязательно сообщайте нам. Все замечания и предложения по улучшению сервиса обязательно примем к сведению.

Что еще почитать по теме

T-Rex 30 марта 2021

Что такое SMTP-протокол и как он устроен?

SMTP (Simple Mail Transfer Protocol) — протокол передачи почты. Он был представлен еще в 1982 году, но не теряет актуальности до сих пор. В статье разбираемся, какие задачи решает протокол и как он ра…
T-Rex 30 марта 2021
Владимир Туров 1 сентября 2020

Дело совершенно секретного iPod

Это был обычный серый день в конце 2005 года. Я сидел на рабочем месте и писал код для следующей версии iPod. Вдруг без стука ворвался директор ПО для iPod, начальник моего начальника, и закрыл дверь.
Владимир Туров 1 сентября 2020
T-Rex 21 августа 2020

TrendForce: цены на SSD упадут

Эксперты DRAMeXchange предсказывают значительное падение цен на оперативную память и твердотельные накопители в ближайшее время. Причина — сокращение спроса на чипы для NAND и DRAM.
T-Rex 21 августа 2020

Новое в блоге

Михаил Фомин 24 июня 2022

Docker Swarm VS Kubernetes — как бизнес выбирает оркестраторы

Рассказываем, для каких задач бизнесу больше подойдет Docker Swarm, а когда следует выбрать Kubernetes.
Михаил Фомин 24 июня 2022
Ульяна Малышева 30 сентября 2022

«Нулевой» локальный диск. Как мы запустили облако только с сетевыми дисками и приручили Ceph

Чем хороши сетевые диски и почему именно Ceph, рассказал директор по развитию ядра облачной платформы Иван Романько.
Ульяна Малышева 30 сентября 2022
Валентин Тимофеев 30 сентября 2022

Как проходит онбординг сотрудников ИТО? Что нужно, чтобы выйти на смену в дата-центр

Рассказываем, как обучаем новых сотрудников, какие задачи и испытания проходят инженеры прежде, чем выйти на свою первую смену.
Валентин Тимофеев 30 сентября 2022
T-Rex 28 сентября 2022

Книги по SQL: что почитать новичкам и специалистам

Собрали 6 книг, которые помогут на старте изучения SQL и при углублении в тему.
T-Rex 28 сентября 2022