Как загрузить удаленный каталог с помощью LFTP (sftp), используя скрипт LFTP

По сути, для загрузки удаленного каталога из LFTP вам нужна утилита зеркала. Встроенное зеркальное действие LFTP может загрузить или обновить целое дерево каталогов. Существует также обратное зеркало (mirror -R), которое загружает или обновляет дерево каталогов на сервере. Зеркало также может синхронизировать каталоги между двумя удаленными серверами, используя FXP, если доступно.

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

A. с именем пользователя пароль

Если вы используете имя пользователя и простой текстовый пароль для доступа к вашему серверу через SFTP, то это способ продолжить. В инструкции open укажите строку аутентификации, которая указывает протокол, имя пользователя для входа в систему, которое обычно является root, и пароль, за которым следует IP-адрес или домен вашего сервера:

set ssl:verify-certificate no
set sftp:auto-confirm yes
open sftp://username:password@server.address.com
mirror --verbose --use-pget-n=8 -c --verbose /remote/directory/that-you-want-to-download /local/directory/to-save;
bye

B. с ключом SSH

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

set ssl:verify-certificate no
set sftp:auto-confirm yes
set sftp:connect-program "ssh -v -a -x -i C:\Users\\.ssh\id_rsa"
open sftp://username:dummy-password@server.address.com
mirror --verbose --use-pget-n=8 -c --verbose /remote/directory/that-you-want-to-download /local/directory/to-save;
bye

Параметры pget получают указанный файл (или каталог), используя несколько соединений. Это может ускорить передачу, но загружает сеть и сервер, сильно влияя на других пользователей. Используйте только если вам действительно нужно передать файл как можно скорее, в противном случае удалите его из примера. --use-pget-n Аргумент указывает число команд pget, используемых для передачи каждого отдельного файла под зеркалом. Замыкание может быть сопоставлено с исходными или целевыми именами хостов, используется минимальное число больше 0. Когда значение меньше 2, pget не используется.

После сохранения сценария запустите его с помощью lftp, используя следующую команду:

lftp -f download_example.lftp

Это автоматически запустит загрузку каталога и выдаст прогресс благодаря --verbose Аргумент, который предоставляет подробный вывод о ходе выполнения задачи:

Окна вывода прогресса LFTP Mirror

Когда сценарий завершится, теперь у вас будет локальный удаленный каталог в вашей локальной системе благодаря LFTP.

Ссылка на основную публикацию
Adblock
detector