我试图找到是否可以通过axel
或aria2
或任何其他可用工具下载文件的一部分(任何文件)。
例如有一个电影文件(因为在 A/V 文件中做这种事情是有意义的)。我怎么能只下载文件第一个的最后 50MB 或第三个 60Mb?
这些文件主要位于 HTTP 服务器上;但可以在 FTP 服务器上。如果可以通过其他协议下载它们,这也是一种选择。
如何手动下载snap包?最好以非 root 用户身份使用wget
?
例如,Chromium 的 Snapcraft 页面如下:
如何找到可下载 Chromium 快照文件的 URL?
我知道wget -i
作为下载 URL 列表的一种方式。唯一的麻烦是我需要将一些不同的 POST 数据传递给每个数据,这适用于使用的单个 url,wget --post-data=
但不适用于列表。
我对任何 CLI 下载器,甚至 JS 或 Python 中的东西都持开放态度。但是,我想获得每次下载的进度条或每次 dl 完成时更新的日志文件,或了解 dl 何时完成的其他方式。
假设我所在的网页上有多个 pdf 文档的超链接。我想下载那些pdf。有没有一种方法可以获取这些文档的列表(以某种方式ls
),然后可以更好地选择使用wget
或来下载哪个文件curl
?
我正在寻找 Gentoo 下载中最大的兼容性。当我转到下载页面时,我看到以下内容:
- install-x86-minimal-20120306.iso 2012 年 3 月 7 日 08:50 135M
- install-x86-minimal-20120306.iso.CONTENTS 2012 年 3 月 7 日 08:50 3.2K
- install-x86-minimal-20120306.iso.DIGESTS 2012 年 3 月 7 日 08:50 348
- install-x86-minimal-20120306.iso.DIGESTS.asc 2012 年 3 月 7 日 13:27 1.2K
- stage3-i486-20120306.tar.bz2 07-Mar-2012 08:50 135M
- stage3-i486-20120306.tar.bz2.CONTENTS 07-Mar-2012 08:50 2.9M
- stage3-i486-20120306.tar.bz2.DIGESTS 2012 年 3 月 7 日 08:50 332
- stage3-i486-20120306.tar.bz2.DIGESTS.asc 2012 年 3 月 7 日 13:27 1.2K
- stage3-i686-20120306.tar.bz2 07-Mar-2012 08:50 135M
- stage3-i686-20120306.tar.bz2.CONTENTS 07-Mar-2012 08:50 2.9M
- stage3-i686-20120306.tar.bz2.DIGESTS 2012 年 3 月 …
我正在创建一个脚本,它应该从存储库下载最新版本的应用程序并部署应用程序。
主要问题:有几个存储库,我需要检查其中哪个具有最新版本。
例如
http://repo1/xyz/LATEST -> (redirects to) -> http://repo1/xyz/app-1.0.0.0.zip
http://repo2/xyz/LATEST -> (redirects to) -> http://repo1/xyz/app-1.1.0.0.zip
Run Code Online (Sandbox Code Playgroud)
所以我需要遍历可用的存储库并只获取一个文件名 - 无需下载过时的软件版本。
我需要使用 wget下载这个文件http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz。
我使用命令
wget http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz
Run Code Online (Sandbox Code Playgroud)
该文件已下载,但是当我尝试解压缩该文件时,我得到了这个
tar -zxvf jdk-7u67-linux-x64.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
所以我使用 file 命令来检查文件,我得到了这个
file jdk-7u67-linux-x64.tar.gz
jdk-7u67-linux-x64.tar.gz: HTML document, ASCII text, with very long lines, with CRLF line terminators
Run Code Online (Sandbox Code Playgroud)
我在 Ubuntu 14.04 上。有任何想法吗?
我正在通过网络下载一个大文件。在下载(比如 40%)时,底层机器与网络断开连接,在curl
退出之前,网络连接。但是在这种情况下,curl 不会恢复该过程。
最终卷发退出。
哪些开关curl
可以帮助我恢复中断的下载?
编辑:对问题的更多解释
18:43:20 PM SHW@SHW:/tmp # curl http://ip-address.com/BigFile
18:43:40 PM <Downloading in progress>
18:43:50 PM <Downloading in progress>
18:44:10 PM <network get disconnected>
18:44:20 PM <Downloading get stuck>
18:44:30 PM <Network get connected>
18:44:40 PM <DOWNLOAD MUST RESUME NOW> <==
Run Code Online (Sandbox Code Playgroud)
根据上面的时间戳,我想curl
在curl
退出启动过程之前恢复下载。我不想重新执行 curl 命令
关于wget
、子文件夹和 index.html 的问题。
假设我在“travels/”文件夹中,这是在“website.com”中:“website.com/travels/”。
文件夹“travels/”包含很多文件和其他(子)文件夹:“website.com/travels/list.doc”、“website.com/travels/cover.png”、“website.com/travels/[1990” ] America/" , "website.com/travels/[1994] Japan/", 等等...
如何仅下载位于所有子文件夹中的所有“.mov”和“.jpg”?我不想从“travels/”中选择文件(例如不是“website.com/travels/list.doc”)
我发现一个wget
命令(在 Unix&Linux Exchange 上,我不记得讨论了什么)能够从子文件夹下载只有它们的“index.html”,而不是其他内容。为什么只下载索引文件?
我需要在资源有限且对延迟非常敏感的环境中尽快下载并解压缩文件(具有 1 个 cpu、2 个内核、128MB RAM 的虚拟机)
当然,我尝试将下载过程通过管道传输到解压缩过程,并假设我可以在下载的同时解压缩。我知道管道被最慢的进程阻塞。为了克服这个问题,我在下载和解压缩过程之间使用了一个缓冲区。
我的 shell 脚本看起来像这样:
curl -s $CACHE_URL | buffer -S 100M | lz4 -d > /tmp/myfile
Run Code Online (Sandbox Code Playgroud)
如果我首先下载压缩文件,然后在不使用管道的情况下解压缩,则下载大约需要 250 毫秒,如果按顺序执行,解压缩大约需要 250 毫秒。
因此,我的假设是管道方法将花费大约 250-275 毫秒,因为中间没有额外的磁盘读取,并且下载不像解压缩那样受 CPU 限制,因此不会影响那么多。
但事实并非如此。正如我的日志所示,它的速度稍快一些:
Start download
35211K, 81131K/s
Download & decompressed done in 447ms
Starting individual download & decompress
Download done in 234ms
Decompressed : 61 MiB
/tmp/myfile : decoded 75691880 bytes
Decompress done in 230ms
Run Code Online (Sandbox Code Playgroud)
我这里是不是想错了?还有其他方法可以加快这个速度吗?