歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu/Debian axel+腳本實現『下載完關機』

Ubuntu/Debian axel+腳本實現『下載完關機』

日期:2017/2/28 16:15:11   编辑:Linux教程
原來我的御用下載完關鍵軟件是Firefox的DownThemAll配合Auto Shutdown插件,但Firefox4就比較悲劇,因為Auto Shutdown插件開發者不繼續維護了Ubuntu/Debian axel+腳本實現『下載完關機』" alt="Ubuntu/Debian axel+腳本實現『下載完關機』" src="http://www.sinaimg.cn/uc/myshow/blog/misc/gif/E___6706EN00SIGG.gif" TYPE="face">。

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}"
Copyright © Linux教程網 All Rights Reserved