菜鸟科技网

Linux断点续传命令有哪些?

在Linux系统中,断点续传是指在网络传输或文件复制过程中,因意外中断(如网络波动、手动终止等)后,能够从中断的位置继续传输,而非重新开始,从而节省时间和带宽,Linux提供了多种支持断点续传的命令,其中最常用的是wgetcurlrsyncaxel,这些工具通过不同的技术实现断点续传功能,适用于HTTP、FTP、SSH等多种协议场景,以下将详细介绍这些命令的使用方法、参数配置及实际应用场景。

Linux断点续传命令有哪些?-图1
(图片来源网络,侵删)

wget命令:支持HTTP/FTP的断点续传

wget是一款开源的命令行下载工具,默认支持HTTP和FTP协议的断点续传功能,其核心参数是-c--continue),用于续传之前未完成的下载任务,若目标文件已存在,wget会自动检测文件大小并从中断处继续下载;若文件不存在或大小不匹配,则会重新下载。

基本语法
wget -c [URL]

示例
续传一个被中断的HTTP文件下载:
wget -c https://example.com/largefile.iso

进阶参数

Linux断点续传命令有哪些?-图2
(图片来源网络,侵删)
  • --tries=NUM:设置重试次数,默认为20次,适用于网络不稳定环境。
  • --timeout=SECONDS:设置超时时间,避免因长时间无响应导致任务失败。
  • -b--background:后台下载,适合长时间任务。
  • -i FILE:从文件中读取URL列表,批量下载并支持续传。

注意事项

  • 目标服务器需支持断点续传(响应HTTP头Accept-Ranges: bytes),若服务器不支持,-c参数可能导致下载失败或文件损坏。
  • 若本地文件大小大于服务器文件,wget会自动重新下载,需手动删除旧文件后重新开始。

curl命令:多协议支持的灵活工具

curl支持HTTP、HTTPS、FTP、SCP等多种协议,通过-C -参数实现断点续传,-C后的表示自动从中断位置续传。

基本语法
curl -C - -O [URL]

示例
续传FTP文件并保存为原文件名:
curl -C - - ftp://example.com/files/archive.tar.gz

Linux断点续传命令有哪些?-图3
(图片来源网络,侵删)

进阶参数

  • -L:跟随重定向,适用于URL跳转的场景。
  • -u USER:PASS:提供认证信息,用于需要权限的FTP/HTTP服务器。
  • 显示进度条,提升用户体验。
  • -o FILE:指定输出文件名,结合-C -可续传到自定义文件。

注意事项

  • curl的断点续传依赖服务器支持,与wget类似,需检查服务器响应头。
  • 若本地文件损坏,可先删除再重新下载,或使用-r--range)指定下载范围手动续传。

rsync命令:本地与远程的高效同步

rsync主要用于本地与远程文件同步,通过--partial--append参数支持断点续传,尤其适合大文件传输和目录同步。

基本语法
rsync --partial --append -r [源路径] [目标路径]

示例
续传本地到远程的文件:
rsync --partial --append -r /local/file.txt user@remote:/remote/path/

进阶参数

  • -P:等效于--partial --progress,显示进度并保留部分传输的文件。
  • -z:压缩传输数据,减少带宽占用。
  • -e SSH:指定SSH协议,增强传输安全性。
  • --remove-source-files:传输完成后删除源文件,适用于一次性任务。

注意事项

  • rsync的断点续传基于文件校验,若源文件被修改,可能导致续传失败。
  • 适用于增量同步,仅传输变化部分,效率高于普通复制命令。

axel命令:多线程加速下载

axel是一款多线程下载工具,通过-n参数设置线程数,默认支持断点续传,适合高速下载大文件。

基本语法
axel -n [线程数] -o [输出文件] [URL]

示例
使用8线程续传下载:
axel -n 8 -o download.zip https://example.com/largefile.zip

进阶参数

  • -s:设置每秒最大字节数,限速下载。
  • -q:静默模式,不显示进度信息。
  • -a:自动调整线程数,根据网络状况优化。

注意事项

  • 多线程下载可能被服务器拦截,需确认服务器是否允许并发连接。
  • 续传时需确保输出文件未被修改,否则可能导致数据错乱。

命令对比与选择建议

以下表格总结了各命令的适用场景和特点:

命令 支持协议 断点续传参数 优势 适用场景
wget HTTP/FTP -c 简单易用,适合HTTP/FTP下载 常规文件下载,服务器支持断点续传
curl 多协议 -C - 协议广泛,支持自定义请求头 复杂传输场景,需认证或重定向
rsync 本地/远程/SSH --partial --append 增量同步,高效节省带宽 目录同步,服务器间文件传输
axel HTTP/FTP 默认支持 多线程加速,下载速度快 大文件高速下载,网络稳定环境

选择建议

  • 若仅下载HTTP/FTP文件且服务器支持断点续传,优先使用wgetaxel
  • 需多协议支持或复杂请求时,选择curl
  • 本地与远程同步或增量传输时,rsync为最佳选择。

相关问答FAQs

Q1: 使用wget续传时提示“server does not support byte ranges”,如何解决?
A: 该错误表明目标服务器不支持断点续传,可尝试以下方法:

  1. 删除已下载的部分文件,使用wget重新下载(不加-c参数)。
  2. 改用支持单线程续传的工具,如curl -C -
  3. 联系服务器管理员,确认是否开启断点续传功能。

Q2: rsync续传时提示“file has been truncated”,如何处理?
A: 此错误通常因目标文件被截断或修改导致,解决方案:

  1. 删除目标文件,重新使用rsync --partial --append传输。
  2. 检查源文件是否被修改,若需强制续传,可添加--ignore-existing参数覆盖目标文件。
  3. 使用rsync --checksum通过校验和验证文件完整性,确保续传数据正确。
分享:
扫描分享到社交APP
上一篇
下一篇