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

在这个脚本中,我们做了以下优化:

  1. 使用 set 命令设置了网络重连间隔、最大重试次数和超时时间,以提高网络连接的稳定性。
  2. 添加了 --continue 参数,实现断点续传功能,确保在下载中断后能够从中断处继续下载。
  3. 使用 mirror --use-pget-n=8 启用了并发下载,并设置了 8 个并发线程,以提高下载速度和稳定性。
  4. StrictHostKeyChecking=no 免密验证
  5. 最后用 by 命令退出 lftp。

这样的脚本结合了断点续传和并发下载的优势,可以更有效地下载大量文件和大文件。请确保将 USERPASSWORDSRCDIRDESDIRIPPORT 替换为实际的值。

mirror 命令是 lftp 中用于文件镜像操作的功能强大的命令之一。它可以在本地和远程目录之间同步文件,支持递归操作,可以下载、上传和删除文件,实现本地与远程目录的镜像同步。

mirror 详解

下面是 mirror 命令的基本语法:

mirror [选项] [源目录或文件] [目标目录]

mirror 命令可以接受多种参数,其中一些常用的选项包括:

  • -c, --continue:在已存在的文件上继续下载/上传。
  • -P, --parallel[=N]:启用并发下载/上传,可以指定并发连接数。
  • -R, --reverse:将本地目录内容上传到远程服务器。
  • -v, --verbose:显示详细输出信息,包括文件传输进度等。

在上述脚本中,我们使用了 mirror 命令来进行远程目录到本地目录的镜像操作,并结合了 --use-pget-n=8 选项来实现并发下载,以提高下载效率。同时添加了 --continue 选项来实现断点续传,确保在下载中断后能够从中断处继续下载。

相关文章

为者常成,行者常至