wget
是一个用于从网络上自动下载文件的工具,其名称是World Wide Web与get的结合。它是一个自由软件,基于命令行界面,可以在Linux和其他类Unix系统中使用。
wget
支持HTTP、HTTPS和FTP三个最常见的TCP/IP协议,并可以使用HTTP代理。其主要特点包括自动下载、后台执行、下载任务完成后的继续执行等。同时,wget还可以从指定URL下载文件,支持断点续传、递归下载等高级功能。
wget
通常用于批量下载网站上的文件或制作远程网站的镜像。由于其非交互式的特性,它可以在后台运行,并且在用户退出系统后继续执行下载任务。
wget
的断点续传功能非常方便,当文件特别大或者网络特别慢的时候,往往一个文件还没有下载完,连接就已经被切断,此时就需要断点续传。wget的断点续传是自动的,只需要使用-c
参数。代码示例如下:
wget -c https://dataverse.harvard.edu/api/access/datafile/4360331
注:使用断点续传要求服务器支持断点续传。
-t
参数表示重试次数,例如需要重试100次,那么就写-t 100
,如果设成-t 0
,那么表示无穷次重试,直到连接成功。
wget -c -t 100 https://dataverse.harvard.edu/api/access/datafile/4360331
-T
参数表示超时等待时间,例如-T 120
,表示等待120秒连接不上就算超时。
wget -c -T 120 https://dataverse.harvard.edu/api/access/datafile/4360331
说多了都是泪,每次偷懒直接复制人家的下载链接,然后在最前面加上wget
·就按enter去下载了。碰到小文件好说,遇到大文件或者中途不小心关掉的终端, 下载任务就终止了。
因此, 想要解决这种下载任务中断的问题,实则将wget下载作业用nohup
提交后台才是正确的做法,这样妈妈再也不用担心我的下载任务会无缘无故的断掉了。
使用nohup
将wget
下载作业提交后台的示例如下:
nohup wget -c https://dataverse.harvard.edu/api/access/datafile/4360331 >wget.log 2>&1 &
所有wget的输出(包括错误信息)将被写入wget.log文件。