Ubuntu/Debian axel+脚本实现『下载完关机』


原来我的御用下载完关键软件是Firefox的DownThemAll配合Auto Shutdown插件,但Firefox4就比较悲剧,因为Auto Shutdown插件开发者不继续维护了Ubuntu/Debian <wbr>axel+脚本实现『下载完关机』

Google之后发现原来Linux下有个叫『axel』的轻量级下载器,基于命令行,支持多线程、断点续传等多种功能,也有前端程序叫做『axel-kapt』。

其实我需要axel这个软件也就是为了解决下载完关机问题,因此也不需要前端了,就命令行用用可以了。

如何实现下载完关机

看这篇文章的多数童鞋们可能都是为了寻找直观的答案来的,所以我就先说解决方法,至于参数的含义我都作为附录了。
您也可以使用 man axel 来查看具体命令。

Ubuntu /Debian 中关机功能是由调用 /sbin/shutdown 来实现的,首先,需要开通执行它的权限,我就比较懒了,设置为所有人都可以运行此命令:
$ sudo chmod a+x /sbin/shutdown

之后新建一个文本文档,其中的内容为:
"
cd /<存放下载文件的目录>/
axel -n 10 -a file-url1 file-url2 ....... # 10线程,不以刷屏形式显示下载进度

cd /<另一个存放下载文件的目录>/        #存放电影的文件,或者资料的文件,需要放在不同的目录中,根据您的喜好来设置。
axel -n 10 -a file-url-1 file-url-2 .......

sudo /sbin/shutdown -P now # 关机命令
"

我就把他取名为shad(shutdown after downloading),存放在桌面上。

下次睡前要下载什么文件,譬如下载64位Ubuntu的iso,我的脚本就如下:

"
cd /path/to/ubuntu/iso/
axel -n 10 -a http://releases.ubuntu.com/10.10/ubuntu-10.10-alternate-amd64.iso

sudo /sbin/shutdown -P now
"

然后打开终端:
cd ~/桌面 && sh ./shad

这个文件可以反复利用,下次下载其他文件时,只需要修改其中的file-url就可以了。

好了,就关掉显示器,安心地睡觉吧!
我也去睡了,就让电脑在下载完Ubuntu 64位版后自动关闭吧。


以下为 axel 帮助文档节选内容:


       Axel - Linux 下轻量的下载加速器。


       axel [选项] url1 [url2] [url...]


       Axel 是一个通过多个连接从一个 HTTP 或 FTP 服务器下载文件的程序,每个连接下载文件的一部分。

       跟其它程序不一样, Axel 会使用单一线程直接下载所有数据到目标文件。
       这样正好可以节省时间,因为程序没有必要如锁链般连接到所有要下载的部分。


       必需要有一个参数--您想下载的文件的 URL 。当从 FTP 下载,文件名可能包含通配符,程序会尝试解析完整的文件名。
       也可以指定多个 URL ,程序将会通过那些地址下载。请注意,程序不会检查文件是否相同。

       其它选项:

       --max-speed=x, -s x
              您可以在这里指定一个速率(每秒字节,B/s), Axel 将会尝试保持平均速率在这个速率附近。它很有用──如果您不想程序吃掉您所有的带宽。

       --num-connections=x, -n x
              您可以在这里指定一个最终连接数。

       --output=x, -o x
              下载的数据将会被保存为一个跟 URL 地址文件名同名的本地文件,除非您使用这个选项指定使用一个不一样的名字。
              您也可以指定一个目录,程序将会追加文件名。

       --search[=x], -S[x]
              Axel 能使用 filesearching.com 搜索引擎,对镜像执行搜索。您使用这个选项它才会这么做。
              您也可以指定应该使用多少个不同的镜像来下载。

              对镜像搜索非常耗时,因为程序会测试每个服务器的速率,与及文件是否仍然有效。

       --no-proxy, -N
              不使用代理服务器下载文件。当然,当一个透明代理是有效时,这是不可能的。

       --verbose
              如果您想看到更多的状态信息,您可以使用这个选项。如果您想看到更多,就使用它多几次。

       --quiet, -q
              不输出到标准输出(stdout)。

       --alternate, -a
              这将会显示一个文本进度指示器。一个显示不同线程进度和状态,当前速率和评估剩余下载时间的棒形图。

       --help, -h
              一个对所有选项的简洁摘要。

       --version, -V
              获取版本信息。


       axel ftp://ftp.{be,nl,uk,de}.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2

       它将会使用 Belgian 、 Dutch 、 English 和 German 的 kenel.org 镜像下载 Linux 2.4.17 kernel 映象。

       axel -S4 ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2

       它将会在 filesearching.com 搜索 linux-2.4.17.tar.bz2 文件,然后从四个(如果可能的话)最快的镜像中下载(可能包括 ftp.kenel.org )。

       (当然,这个命令是一个独立行,但他们太长而不能在这个页面内显示为一行。)

       让 Gentoo GNU/Linux 的 Portage 软件包管理器调用 Axel 来下载,把下面的命令添加进 /etc/make.conf 。

       FETCHCOMMAND='/usr/bin/axel -a -o "${DISTDIR}/${FILE}.axel" "${URI}" && mv "${DISTDIR}/${FILE}.axel" "${DISTDIR}/${FILE}"'
       RESUMECOMMAND="${FETCHCOMMAND}"

相关内容