curl命令恢复中断下载

时间:2020-01-09 14:16:11  来源:igfitidea点击:

如何在Linux或类似Unix的系统上使用curl命令恢复失败的下载?
您可以使用curl命令继续获取部分下载的文件。

您需要传递-C或--continue-at <offset>选项以给定的偏移量恢复先前的文件传输。

curl恢复下载

COMMAND命令的语法如下,以便使用curl命令自动找出在何处/如何恢复传输:

curl -C url

或者

curl -L -O -C url

或者

curl -L -o'filename-here'-C url

在此示例中,完成由curl命令的先前实例启动的下载:

curl -L -O -C - http://ftp.ussg.iu.edu/linux/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

如果当前目录中有一个名为CentOS-6.5-x86_64-bin-DVD1.iso的文件,则curl将假定它是远程文件的第一部分,并将要求服务器继续从等于的偏移量检索。
本地文件的长度。
因此,这将节省时间和带宽。

另一个例子

您可以以给定的偏移量继续进行先前的文件传输。
给定的偏移量是将从源文件的开头算起的确切字节数,然后再将其传输到目标。
语法为:

curl -C偏移量网址

在此示例中,使用以下命令检索ifdata-welcome-0.png文件:

## Get first 20000 bytes ##
curl  -o file.png --header "Range: bytes=0-20000" http://www.theitroad.local/media/images/misc/static/2012/11/ifdata-welcome-0.png
 
## Resume at 20001 offset and download the rest of the file ##
curl -o file.png -C 20001 http://www.theitroad.local/media/images/misc/static/2012/11/ifdata-welcome-0.png
 
## View an image file using a local image viewer ##
ls -lh file.png
open file.png

ls命令的示例输出:

-rw-r--r--@ 1 Hyman  wheel    30K Feb 28 23:24 file.png

curl选项

  • -L如果找到HTTP 3xx状态代码,请遵循位置。例如,重定向URL。
  • -O将输出写入本地文件,例如我们获得的远程文件。仅使用远程文件的文件部分,路径被切断。
  • -C继续/恢复先前的文件传输。
  • -C offsetAT在给定的偏移量处继续/恢复先前的文件传输。
  • -o'filename'将输出写入/保存到文件名,而不是标准输出/屏幕。