Linux wget 批量下载
需求:已知50个pdf的URL地址,需要批量下载,该怎么办呢?
方案一:使用wget自带的一个功能 -i 选项 从指定文件中读取下载地址,这样的好处是一直是这一个wget进程下载所有pdf,不会来回的启、停止进程
[root@Jenkins tmp]# pwd
/root/tmp
[root@Jenkins tmp]# wc -l 50pdf.log
50pdf.log
[root@Jenkins tmp]# head - 50pdf.log
[root@Jenkins tmp]# awk '{print "http://xxxxx/"$1}' 50pdf.log > download.log
[root@Jenkins tmp]# head - download.log
http://xxxxx/14788669468643331.pdf
http://xxxxx/1479035133045678.pdf
http://xxxxx/14799731544302441.pdf
[root@Jenkins tmp]# wget -i download.log
---- ::-- http://xxxxx/14788669468643331.pdf
Resolving nfs.htbaobao.com... 106.75.138.13
Connecting to nfs.htbaobao.com|106.75.138.13|:... connected.
HTTP request sent, awaiting response... OK
Length: (2.5M) [application/pdf]
Saving to: “.pdf” %[========================================================================================================================================================================>] ,, 244K/s in 10s -- :: ( KB/s) - “.pdf” saved [/]
.......................................中间省略
---- ::-- http://xxxxx/1481341338750833.pdf
Reusing existing connection to nfs.htbaobao.com:.
HTTP request sent, awaiting response... OK
Length: (149K) [application/pdf]
Saving to: “.pdf” %[========================================================================================================================================================================>] , 209K/s in .7s -- :: ( KB/s) - “.pdf” saved [/] FINISHED ---- ::--
Downloaded: files, 16M in 1m 13s ( KB/s)
[root@Jenkins tmp]# ls
14788669468643331.pdf 1481187682278708.pdf 1481262534034760.pdf 1481266593232456.pdf 1481340827926207.pdf 1481340948842260.pdf 1481341049634040.pdf 1481341172815801.pdf 1481341307823881.pdf
1479035133045678.pdf 1481193562811982.pdf 1481262611307371.pdf 1481267034803389.pdf 1481340853666343.pdf 1481340973957872.pdf 1481341112979143.pdf 1481341185245978.pdf 1481341338750833.pdf
14799731544302441.pdf 1481247789582233.pdf 1481262623674903.pdf 1481270022285676.pdf 1481340897933322.pdf 1481341008561312.pdf 1481341130545646.pdf 1481341216517700.pdf 50pdf.log
14799944743125144.pdf 1481262178457017.pdf 1481262846773279.pdf 1481286012498927.pdf 1481340922434822.pdf 1481341008584230.pdf 1481341134346522.pdf 1481341229730723.pdf download.log
1481034002739896.pdf 1481262229905206.pdf 1481265452669335.pdf 1481340787767089.pdf 1481340927135663.pdf 1481341022043499.pdf 1481341148759269.pdf 1481341244148718.pdf
1481095290513785.pdf 1481262241457479.pdf 1481265807661321.pdf 1481340826599027.pdf 1481340943094250.pdf 1481341045655154.pdf 1481341159027852.pdf 1481341261314587.pdf
在下载过程中打开另外一个窗口查看是否是同一个wget进程
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: wget -i download.log
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: wget -i download.log
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: wget -i download.log
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: wget -i download.log
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
[root@Jenkins ~]#
方案二:把这些URL地址放在一个文件里面,然后写个脚本直接for循环取一个URL地址交给wget下载,但是这样不好的是每下载一个pdf都会启动一个wget进程,下载完成后关闭wget进程 ......一直这样循环到最后一个,比较影响系统性能
[root@Jenkins tmp]# ls
50pdf.log download.log wget_pdf.sh
[root@Jenkins tmp]# cat wget_pdf.sh
#!/usr/bin/env bash
#
for url in `cat /root/tmp/download.log`;do
wget $url
done
[root@Jenkins tmp]# sh wget_pdf.sh
---- ::-- http://xxxxx/14788669468643331.pdf
Resolving nfs.htbaobao.com... 106.75.138.13
Connecting to nfs.htbaobao.com|106.75.138.13|:... connected.
HTTP request sent, awaiting response... OK
Length: (2.5M) [application/pdf]
Saving to: “.pdf” %[========================================================================================================================================================================>] ,, 230K/s in 11s -- :: ( KB/s) - “.pdf” saved [/]
......................................................中间省略
---- ::-- http://xxxxx/1481341338750833.pdf
Resolving nfs.htbaobao.com... 106.75.138.13
Connecting to nfs.htbaobao.com|106.75.138.13|:... connected.
HTTP request sent, awaiting response... OK
Length: (149K) [application/pdf]
Saving to: “.pdf” %[========================================================================================================================================================================>] , 184K/s in .8s -- :: ( KB/s) - “.pdf” saved [/] [root@Jenkins tmp]# ls
.pdf .pdf .pdf .pdf .pdf .pdf .pdf .pdf .pdf
.pdf .pdf .pdf .pdf .pdf .pdf .pdf .pdf .pdf
.pdf .pdf .pdf .pdf .pdf .pdf .pdf .pdf 50pdf.log
.pdf .pdf .pdf .pdf .pdf .pdf .pdf .pdf download.log
.pdf .pdf .pdf .pdf .pdf .pdf .pdf .pdf wget_pdf.sh
.pdf .pdf .pdf .pdf .pdf .pdf .pdf .pdf
在下载过程中打开另外一个窗口查看是否是同一个wget进程
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: sh wget_pdf.sh
root : pts/ :: wget http://xxxxx/14788669468643331.pdf
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: sh wget_pdf.sh
root : pts/ :: wget http://xxxxx/1479035133045678.pdf
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: sh wget_pdf.sh
root : pts/ :: wget http://xxxxx/1479035133045678.pdf
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: sh wget_pdf.sh
root : pts/ :: wget http://xxxxx/14799731544302441.pdf
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: sh wget_pdf.sh
root : pts/ :: wget http://xxxxx/14799731544302441.pdf
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: sh wget_pdf.sh
root : pts/ :: wget http://xxxxx/14799944743125144.pdf
[root@Jenkins ~]# ps -ef|grep -v grep|grep wget
root : pts/ :: sh wget_pdf.sh
root : pts/ :: wget http://xxxxx/1481341307823881.pdf
小结:
1、使用方案一 只有一个进程下载,且在最后会显示总共下载了多少个文件,下载的总大小等信息
2、使用方案二 每次下载都会重新生成一个wget进程,上下文频繁切换
Linux wget 批量下载的更多相关文章
- Linux wget 命令下载文件
wget是Linux系统中用来下载文件的工具,其功能还是比较多的,能够下载单个文件,也可以分段下载,下面小编将针对wget命令的用法给大家做个实例介绍. 实例1 :下载单个文件 # wget http ...
- linux wget指定下载目录和重命名
当我们在使用wget命令下载文件时,通常会需要将文件下载到指定的目录,这时就可以使用 -P 参数来指定目录,如果指定的目录不存在,则会自动创建. 示例: p.p1 { margin: 0; font: ...
- wget批量下载
wget -i download.txt 这样就会把download.txt里面列出的每个URL都下载下来. wget -c http://the.url.of/incomplete/file 使用断 ...
- linux FTP 批量下载文件
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理.wget名称的由来是“World Wide Web”与“ge ...
- wget批量下载http文件
eg:http://hgdownload.soe.ucsc.edu/goldenPath/hg19/encodeDCC/wgEncodeAwgDnaseUniform/ 下载该路径下的所有文件 wge ...
- 利用wget批量下载http目录下文件
原理:下载你需要down的目录页面的index.html,可能名字不是如此!!!之后用wget下载该文件里包含的所有链接! 例如:wget -vE -rLnp -nH --tries=20 --tim ...
- wget 批量下载网站目录下的文件
执行如下命令就会自动下载 http://www.iyunwei.com/docs/ 下面的所有文件: wget -nd -r -l1 --no-parent http://www.iyunwei.co ...
- wget 批量下载目录文件
wget -r -p -k -np http://源目录 ./本地目标目录
- 15个Linux Wget下载实例终极指南
15个Linux Wget下载实例终极指南 Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到 ...
随机推荐
- springcloud --- spring cloud sleuth和zipkin日志管理(spring boot 2.18)
前言 在spring cloud分布式架构中,系统被拆分成了许多个服务单元,业务复杂性提高.如果出现了异常情况,很难定位到错误位置,所以需要实现分布式链路追踪,跟进一个请求有哪些服务参与,参与的顺序如 ...
- Linux kail安装及查看命令
Linux kail安装及查看命令 apt-get update //更新源 apt-get install package ...
- 自学导航页(待续ing)
1 博客导航1.1 linuxlinux全线教程–提供了linux教程,服务器管理教程,BSD教程,还有编程语言(C/Java/Python/Perl),以及网络等全栈学习教程 1.2 存储技术NoS ...
- jQuery.noConflict()解决imgBox.js依赖jquery版本问题
jQuery提供两种点击图片放大效果出处 在使用imgbox.js是出现的jquery版本不兼容问题,之后了解到jQuery.noConflict()的用法 jQuery.noConflict()的存 ...
- vue中图片放大镜功能
仿淘宝详情页图片鼠标移过去可对图片放大显示在右侧 效果图如下图,此功能支持PC端与移动端 接下来进入代码实现环节: 先准备两张图片,一张小图片叫 '土味.jpg',大小160*91:一张大图片叫 ' ...
- CentOS 7 单机安装Redis Cluster(3主3从)
首先,本篇要基于单实例的安装,你的机器上已经有一个Redishttps://gper.club/articles/7e7e7f7ff7g5egc4g6b 为了节省机器,我们直接把6个Redis实例安装 ...
- 【LeetCode刷题】——两数之和.1
---恢复内容开始--- 一直想在leetcode上面刷题,但是java刚刚摸了一下门,所以迟迟没有动手,今天做了第一道题,感觉自己实在菜的不行,但是还是学到了很多东西, 就记录一下遇到的问题. 首先 ...
- drf框架中认证与权限工作原理及设置
0909自我总结 drf框架中认证与权限工作原理及设置 一.概述 1.认证 工作原理 返回None => 游客 返回user,auth => 登录用户 抛出异常 => 非法用户 前台 ...
- 渗透测试-基于白名单执行payload--Compiler
复现亮神课程 0x01 Compiler前言 说明:Microsoft.Workflow.Comiler.exe是.NET Framework默认自带的一个实用工具,用户能够以XOML工作流文件的形式 ...
- [BZOJ29957] 楼房重建 - 线段树
2957: 楼房重建 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 3294 Solved: 1554[Submit][Status][Discus ...