你是否下载过一个非常巨大的文件 , 以至于你不得不将你的web浏览器几个小时甚至几天的打开?假如你有一个40个文件链接在一个web页上 , 你又需要它——你愿意不厌期烦的一个一个的点开它们吗?再假如浏览器在工作完成前发生了故障呢?Linux 早已拥有一系列用手动的工具来对付这种情况 , 它完全不用使用浏览器 。支持断点续传、镜像下载、计划下载等windows下载工具的所有功能:) 。酷不酷?下面 , 就跟我来吧!
在这种方式中存在的交互性
Web浏览器是使Web具有交互性——点击然后希望结果能在几秒钟内出来 。但是 , 即使是在很快的线路里 , 下载许多文件仍然需要相当长的时间 。例如ISO镜像文件就被普遍用在GNU/Linux的CD-ROM发行版中 。一些web浏览器 , 尤其是只有简单编码的浏览器 , 对于长时间的工作并不能很好的运作 , 它可能会漏掉记忆存储或者会不合时宜的发生故障 。尽管将一些浏览器和文件治理器已经结合起来了 , 但仍然不能支持多个文件的下载及捆绑传送(就是将几个文件捆绑在一起以便于传送) 。所以你不得不保持登录状态直到整个文件下载完毕 。最后你还得去你的办公室点击链接开始下载 , 而这样你会因为共享了同事的带宽而使他很不兴奋 。
下载大型文件这个任务更适合另外一套工具来完成 。这篇文章将告诉你怎么样把各种GNU/Linux 的应用程序结合起来 , 也就是lynx , wget , at , crontab等等来解决各种文件传送中的问题 。我们将用到一些简单的脚本 , 所以有一点bash shell方面的知识对下面的学习会有帮助 。
wget 应用程序
其主要分类包括wget 下载工具 。
bash$ wget http://place.your.url/here
它还可以处理FTP、时间戳及递归的镜像整个web网站的目录树——假如你一不小心 , 整个web网站及所有别的站点就会链接到:
bash$ wget -m http://target.web.site/subDirectory
由于潜在的高负载 , 这个工具被放在服务器中 , 这个工具在下载过程中会自动根据“robots.txt”中的镜像优化下载 。这里有几个命令选项以控制那些被下载 , 并限制跟随的链接的类型和下载文件的类型 。例如:仅跟随相对链接并跳过GIF:
bash$ wget -m -L --reject=gif http://target.web.site/subdirectory
当然它支持断点续传 。当将不完整的文件给予它以拼接剩余的数据时 , wget能恢复被打断的下载(“-c”选项) 。这个操作需要服务器的支持 。
bash$ wget -c http://the.url.of/incomplete/file
断点续传可以和镜像功能结合起来 , 可以使一个很大的文件通过不同的会话中下载然后再拼接起来 。如何使这个过程自动完成将在稍后介绍 。
假如你经常像我一样经常下载的时候被中断 , 你可以让wget多重试几次:
bash$ wget -t 5 http://place.your.url/here
这里是说试验5次后放弃 , 你也可以使用“-t inf”表示不放弃直到得到结果 。
那么如何使用防火墙代理下载呢?使用http_proxy环境变量或者是 .wgetrc配置文件指定一个代理服务器 , 通过它下载 。假如使用断点续传通过代理服务器下载的话 , 是会失败的 。因为代理一个断点续传的话 , 代理服务器仅能存储一个文件的不完全的拷贝 。当你试图使用"wget -c"以获得文件的剩余部分时 , 代理服务器会核对存储文件 , 并会给出错误的信息告之你已经有了整个文件 。为了成功的绕过文件的存储过程 , 我们通过在下载请求中加上一个非凡的头信息骗过代理服务器:
bash$ wget -c --header="Pragma: no-cache" http://place.your.url/here
“--header”选项可以加入任何头信息的数字或者约定的字符串 , 这样我们就可以修改web服务器和代理器的性能 。一些站点拒绝对通过外面来源链接的文件提供服务 , 只有来源于经过它同意的站点的其他页面时 , 文件内容才可以传送到浏览器当中 。你可以通过添加一个“Referer:”头信息来传送文件:
推荐阅读
- 百度地图怎么下载离线地图
- 微盘为什么下载不了了
- 初乳—仔猪免疫的第一步
- 有信下载应用没有得到分钟数怎么办
- 暴打神经猫下载 暴打神经猫在哪玩
- 有哪些含有寓意的班名?
- Moboplayer解码包下载和安装、离线安装
- M636之——外观功能篇
- Moboplayer怎么下载解码包
- 龙之谷2礼包哪里兑换