開源軟體之lftp的使用

來源:互聯網
上載者:User

lftp 是一款非常著名的字元介面的檔案傳輸工具。功能強大的下載工具,它支援訪問檔案的協議: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在編譯的時候包含openssl庫)。llftp的介面非常想一個shell: 有命令補全,記錄,允許多個背景工作執行等功能,使用起來非常方便。它還有書籤、排隊、鏡像、斷點續傳、多進程下載等功能。

LFTP is sophisticated ftp/http client, file transfer program supporting a number of network protocols. Like BASH, it has job control and uses readline library for input. It has bookmarks, built-in mirror, can transfer several files in parallel. It was designed with reliability in mind. LFTP is free software.

昨天需要同步不同伺服器上的代碼,但是使用預設的ftp工具不可以遞迴的下載檔案夾,上網搜到了這個軟體,感覺不錯,所以寫下自己的操作步驟,希望對大家有所協助。

1、下載lftp安裝包
我下載的版本是:lftp-4.0.1.tar.bz2,: http://download.chinaunix.net/down.php?id=26738&ResourceID=5628&site=1

tar.bz2尾碼的安裝包,解壓使用“bzip2 -d lftp-4.0.1.tar.bz2”,產生一個“lftp-4.0.1.tar”tar包,然後釋放裡面的檔案,操作步驟如下:

[/opt/opthb/work/ymm/OpenSource]$bzip2 -d lftp-4.0.1.tar.bz2[/opt/opthb/work/ymm/OpenSource]$tar -xzvf lftp-4.0.1.tar[/opt/opthb/work/ymm/OpenSource]$lslftp-4.0.1/當然,使用tar的-j參數也是可以解壓的,與bzip2的區別是,使用“bzip2”的方法解壓時,源檔案不再存在,而使用“tar -xjvf”,則會保留源檔案,如下:
[/opt/opthb/work/ymm/OpenSource]$lslftp-4.0.1.tar.bz2

下面是man手冊中對於tar中中參數的解釋:
-j, --bzip2       filter the archive through bzip2我們可以看到,使用“-j”參數,使用的依舊是“bzip2”進行解壓的。2、安裝lftp修改configure檔案執行許可權,並產生makefile檔案使用"configure"命令檢查並配置安裝需要的系統內容,並產生安裝設定檔。可以通過“--prefix 路徑”來執行最終產生的庫的路徑。#修改最終產生的庫的路徑為“/opt/opthb/work/ymm/usr/local”
[/opt/opthb/work/ymm/OpenSource/lftp-4.0.1]$ ./configure --prefix=“/opt/opthb/work/ymm/usr/local”


產生所在環境的makefile之後,編譯源檔案,並產生可執行檔
命令如下:
[/opt/opthb/work/ymm/OpenSource/lftp-4.0.1]$ make使用“make install”安裝編譯過的檔案
[/opt/opthb/work/ymm/OpenSource/lftp-4.0.1]$ make install

安裝成功之後,就會在指定的目錄“/opt/opthb/work/ymm/usr/local”下面產生需要的可執行檔,如下:
[/opt/opthb/work/ymm/OpenSource/lftp-4.0.1]$ cd /opt/opthb/work/ymm/usr/local[/opt/opthb/work/ymm/usr/local]$lsbin  etc  lib  share[/opt/opthb/work/ymm/usr/local]$ls binhelp  lftp  lftpget

通過以上步驟,我們就可以是使用lftp了。
如果我們希望在其他路徑也可以使用lftp的話,只需要把bin路徑添加到環境變數PATH中就可以了,如下:
[/opt/opthb/work/ymm/usr/local]$lftp-bash: lftp: command not found[/opt/opthb/work/ymm/usr/local]$export PATH=/opt/opthb/work/ymm/usr/local/bin:${PATH}                [/opt/opthb/work/ymm/usr/local]$lftplftp :~> 


3、登入遠程伺服器
登入遠程伺服器的方式和普通ftp登入一樣,如下:
[/opt/opthb/work/ymm/usr/local]$lftplftp :~> open 172.21.0.21lftp 172.21.0.21:~> user billing_dxPassword: lftp billing_dx@172.21.0.21:~>


4、使用鏡像進行檔案的傳輸
通過help可以查看lftp所支援的所有命令的使用方法
lftp billing_dx@172.21.0.21:~/work/ymm> help mirrorUsage: mirror [OPTS] [remote [local]]Mirror specified remote directory to local directory -c, --continue         continue a mirror job if possible -e, --delete           delete files not present at remote site     --delete-first     delete old files before transferring new ones -s, --allow-suid       set suid/sgid bits according to remote site     --allow-chown      try to set owner and group on files     --ignore-time      ignore time when deciding whether to download -n, --only-newer       download only newer files (-c won't work) -r, --no-recursion     don't go to subdirectories -p, --no-perms         don't set file permissions     --no-umask         don't apply umask to file modes -R, --reverse          reverse mirror (put files) -L, --dereference      download symbolic links as files -N, --newer-than=SPEC  download only files newer than specified time -P, --parallel[=N]     download N files in parallel -i RX, --include RX    include matching files -x RX, --exclude RX    exclude matching files                        RX is extended regular expression -v, --verbose[=N]      verbose operation     --log=FILE         write lftp commands being executed to FILE     --script=FILE      write lftp commands to FILE, but don't execute them     --just-print, --dry-run    same as --script=-When using -R, the first directory is local and the second is remote.If the second directory is omitted, basename of first directory is used.If both directories are omitted, current local and remote directories are used.使用mirror命令可以進行進行檔案夾的下載,配合著lcd命令(本地路徑),就可以下載自己需要到檔案到指定目錄:
lftp billing_dx@172.21.0.21:~> lcd /opt/opthb/work/ymm/test/lcd ok, local cwd=/opt/opthb/work/ymm/testmirror 檔案夾,可以遞迴下載該檔案夾到lcd指定的目錄,如下:
lftp billing_dx@172.21.0.21:~/work/ymm> mirror  DataGen/Total: 3 directories, 15 files, 0 symlinks                                 Modified: 1 file, 0 symlinks195 bytes transferred

mirror -R上傳檔案夾(不可以單獨的檔案)

lftp billing_dx@172.21.0.21:/tmp/temp> mirror -R ymm.txt#上傳檔案出錯mirror: Access failed: /opt/opthb/work/ymm/test/ymm.txt: Not a directory1 error detectedlftp billing_dx@172.21.0.21:/tmp/temp> mirror -R test#上傳目錄正常Total: 38 directories, 289 files, 0 symlinks                          New: 289 files, 0 symlinks3047762 bytes transferred in 2 seconds (1.89M/s)To be removed: 0 directories, 1 file, 0 symlinks
使用斷點續傳功能和多執行緒的方法
mirror -c --parallel=線程數目 遠程路徑 本地路徑
lftp billing_dx@172.21.0.21:/tmp/temp> mirror -c --parallel=2 sub sub2Total: 1 directory, 4 files, 0 symlinksNew: 4 files, 0 symlinks如果本地路徑不存在,會自動建立指定命名的目錄。使用上述方法,對於檔案數目比較多的情況下,例如使用者目錄的遷移是很有效。而且,我發現通過ftp下載的檔案,檔案的可執行許可權會被去掉,而通過lftp下載的檔案,檔案的可執行檔會被保留。擴充閱讀: http://download.chinaunix.net/download/0006000/5628.shtml lftp介紹和軟體下載http://blog.csdn.net/xiaotuni/article/details/2099609 tar.bz2檔案解壓http://bbs.chinaunix.net/thread-1325666-1-1.html lftp下載整個檔案夾http://blog.csdn.net/helloworldtoo/article/details/7022291 lftp命令介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.