Linux 使用 lftp 命令断点续传、mirror 并发下载文件
当结合断点续传和并发下载时,下面是一个优化后的脚本示例,它可以通过 lftp 实现高效的文件下载
当结合断点续传和并发下载时,下面是一个优化后的脚本示例,它可以通过 lftp 实现高效的文件下载:
#!/bin/bash
USER=xxx
PASSWORD=xxx
SRCDIR=/data/all
DESDIR=/upload/supply/all/20230228
IP=xxx
PORT=xxx
lftp -u "${USER},${PASSWORD}" sftp://"${IP}:${PORT}" <<EOF
set net:reconnect-interval-base 5
set net:max-retries 2
set net:timeout 10m
set sftp:connect-program "ssh -a -x -o StrictHostKeyChecking=no"
cd "${DESDIR}"
lcd "${SRCDIR}"
mirror --use-pget-n=8 --continue --verbose
by
EOF
在这个脚本中,我们做了以下优化:
- 使用
set
命令设置了网络重连间隔、最大重试次数和超时时间,以提高网络连接的稳定性。 - 添加了
--continue
参数,实现断点续传功能,确保在下载中断后能够从中断处继续下载。 - 使用
mirror --use-pget-n=8
启用了并发下载,并设置了 8 个并发线程,以提高下载速度和稳定性。 StrictHostKeyChecking=no
免密验证- 最后用
by
命令退出 lftp。
这样的脚本结合了断点续传和并发下载的优势,可以更有效地下载大量文件和大文件。请确保将 USER
、PASSWORD
、SRCDIR
、DESDIR
、IP
和 PORT
替换为实际的值。
mirror
命令是 lftp 中用于文件镜像操作的功能强大的命令之一。它可以在本地和远程目录之间同步文件,支持递归操作,可以下载、上传和删除文件,实现本地与远程目录的镜像同步。
mirror 详解
下面是 mirror
命令的基本语法:
mirror [选项] [源目录或文件] [目标目录]
mirror
命令可以接受多种参数,其中一些常用的选项包括:
-c, --continue
:在已存在的文件上继续下载/上传。-P, --parallel[=N]
:启用并发下载/上传,可以指定并发连接数。-R, --reverse
:将本地目录内容上传到远程服务器。-v, --verbose
:显示详细输出信息,包括文件传输进度等。
在上述脚本中,我们使用了 mirror
命令来进行远程目录到本地目录的镜像操作,并结合了 --use-pget-n=8
选项来实现并发下载,以提高下载效率。同时添加了 --continue
选项来实现断点续传,确保在下载中断后能够从中断处继续下载。
相关文章
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)