lftp 是一個檔案傳輸程式。它可以用於複雜的 FTP 、 HTTP/HTTPS 和其他連線。如果指定了站點 URL,那麼 lftp 將連線到該站點,否則會使用 open 命令建立連線。它是所有 Linux/Unix 命令列使用者的必備工具。我目前寫了一些關於 Linux 下超快命令列下載加速器,比如 Axel 和 prozilla 。 lftp 是另一個能做相同的事,但有更多功能的工具。 lftp 可以處理幾種檔案訪問方式:
ftp
ftps
http
https
hftp
fish
sftp
file
那麼 lftp 的獨特之處是什麼?
lftp 中的每個操作都是可靠的,即任何非致命錯誤都被忽略,並且重複進行操作。所以如果下載中斷,它會自動重新啟動。即使 FTP 站群伺服器不支援 REST 命令,lftp 也會嘗試從開頭檢索檔案,直到檔案傳輸完成。
lftp 具有類似 shell 的命令語法,允許你在後臺並行啟動多個命令。
lftp 有一個內建的映象站群功能,可以下載或更新整個目錄樹。還有一個反向映象站群功能(mirror -R),它可以上傳或更新站群伺服器上的目錄樹。映象站群也可以在兩個遠端站群伺服器之間同步目錄,如果可用的話會使用 FXP 。
如何使用 lftp 作為下載加速器
lftp 有 pget 命令。它能讓你並行下載。語法是:
lftp -e ‘pget -n NUM -c url; exit’
例如,使用 pget 分 5 個部分下載 http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.2.tar.bz2:
$ cd /tmp
$ lftp -e ‘pget -n 5 -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.2.tar.bz2’
示例輸出:
45108964 bytes transferred in 57 seconds (775.3K/s)
lftp :~>quit
這裡:
pget – 並行下載檔案
-n 5 – 將最大連線數設定為 5
-c – 如果當前目錄存在 lfile.lftp-pget-status,則繼續中斷的傳輸
如何在 Linux/Unix 中使用 lftp 來加速 ftp/https 下載
再嘗試新增 exit 命令:
$ lftp -e ‘pget -n 10 -c https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.15.tar.xz; exit’
關於並行下載的說明
請注意,透過使用下載加速器,你將增加遠端站群伺服器負載。另請注意,lftp 可能無法在不支援多點下載的站點上工作,或者防火牆阻止了此類請求。
其它的命令提供了更多功能。有關更多資訊,請參考 lftp 的 man 頁面:
man lftp