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

Облачное хранилище и консольные 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 обязательно сообщайте нам. Все замечания и предложения по улучшению сервиса обязательно примем к сведению.