基本上, 从LFTP下载远程目录所需的是mirror实用程序。 LFTP的内置镜像操作可以下载或更新整个目录树。还有一个反向镜像(镜像-R), 用于上载或更新服务器上的目录树。镜像还可以使用FXP(如果有)在两个远程服务器之间同步目录。
在此示例中, 我们将编写一个由lftp实用程序执行的lftp脚本。这样做基本上是可以使用set选项在我们的脚本中设置lftp inline的自定义属性。首先创建download_example.lftp文件, 然后根据服务器的身份验证方法, 将以下内容添加到该文件中:
A.使用用户名和密码
如果你使用用户名和纯文本密码通过SFTP访问服务器, 则这是继续进行的方法。在打开的指令中, 提供用于指定协议的身份验证字符串, 用于登录的用户名(通常是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\<username>\.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, 你现在将在本地系统中本地拥有远程目录。
编码愉快!
评论前必须登录!
注册