標籤:
今天在解決一個遠程伺服器備份的問題時,用到了lftp的相關知識。整理如下:
lftp的功能比較強大,相比原來用ftp,方便了很多。
1、登陸:
lftp ftp://[email protected]
pwd:*****
或 open ftp://[email protected]
2、基本操作(轉)
lftp使用介紹
lftp 是一個功能強大的下載工具,它支援訪問檔案的協議: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在編譯的時候包含openssl庫)。llftp的介面非常想一個shell: 有命令補全,記錄,允許多個背景工作執行等功能,使用起來非常方便。它還有書籤、排隊、鏡像、斷點續傳、多進程下載等功能。
命令列文法
要看lftp的命令列文法,只要在shell中輸入lftp --help
lftp [OPTS]
‘lftp‘是在 rc 檔案執行後 lftp 執行的第一個命令
-f 執行檔案中的命令後退出
-c 執行命令後退出
--help 顯示協助資訊後退出
--version 顯示 lftp 版本後退出
其他的選項同 ‘open‘ 命令
-e 在選擇後執行命令
-u [,] 使用指定的使用者名稱/口令進行驗證
-p 串連指定的連接埠
主機名稱, URL 或書籤的名字
如果在命令列中輸入的網站名稱,lftp將直接登入網站,比如
$lftp ftp://.............
如果在命令列不輸入網站名稱,則必須在進入到lftp介面後用open命令開啟
[[email protected] yhj]$ lftp
lftp :~> open ftp://...................
常用命令
* 下載單個檔案和一組檔案,斷點續傳用-c參數
lftp ................:/> get -c ls-lR.txt
lftp ...............:/> mget *.txt
* 鏡像(反鏡像即上傳)一個目錄,可以用多個線程並行鏡像一個目錄(--parallel=N)
lftp ................:/> mirror incoming local_name
lftp ................:/> mirror -R local_name
lftp ................:/> mirror --parallel=3 incoming local_name
* 多線程下載,類似網路螞蟻的功能;預設是5個線程
lftp ................:/> pget -n 4 ls-lR.txt
* 背景工作管理
預設情況下,按 Ctrl+z,正在執行的任務將轉為後台執行,也可以在命令列末尾加&符號使任務在後台執行。用jobs命令可以查看所有的後台進程。用queue命令可以排隊新的任務。如果退出lftp是還有任務在後台執行,lftp將轉為後台執行。
* 其它用法
lftp支援類似bash的管道操作,例如用下面的命令可以將ftp伺服器上的特定目錄下(也可以是整個網站)所有檔案的大小存到本地的檔案ls.txt中
lftp ................:/> du incoming > ls.txt
相關檔案
/etc/lftp.conf
全域設定檔,實際位置依賴系統設定檔目錄,可能在/etc,也可能在/usr/local/etc
~/.lftp/rc, ~/.lftprc
使用者設定檔,將在/etc/lftp.conf之後執行,所以這裡面的設定會覆蓋/etc/lftp.conf中的設定。
lftp 預設不會顯示 ftp 伺服器的歡迎資訊和錯誤資訊,這在很多時候不方便,因為你有可能想知道這個伺服器到底是因為沒開機連不上,還是串連數已滿。如果是這樣,你可以在 ~/.lftprc 裡寫入一行
debug 3
就可以看到出錯資訊了。
更多的配置選項請查man手冊或在lftp介面內用命令 set -a 獲得。
~/.lftp/log
當lftp轉為後台非掛起模式執行時,輸出將重新導向到這裡
~/.lftp/bookmarks
這是lftp儲存書籤的地方,可以lftp查看bookmark命令
~/.lftp/cwd_history
這個檔案用來儲存訪問過的網站的工作目錄
~/.lftprc
在用lftp訪問國內一些ftp伺服器時,往往看到的中文是亂碼
^_^不用慌,這是由於伺服器和本地編碼不一致造成的。我們只要在主目錄下建立一個檔案~/.lftprc或者~/.lftp/rc
並在其中加入以下內容:
debug 3set ftp:charset GBKset file:charset UTF-8#set ftp:passtive-mode no#alias utf8 " set ftp:charset UTF-8"#alias gbk " set ftp:charset GBK"
登入ftp伺服器
言歸正傳,我們先來看看怎麼登入ftp伺服器
lftp ftp://user:[email protected]:port
lftp user:[email protected]:port
lftp site -p port -u user,password
lftp site:port -u user,password
上面的幾種方式都能正常工作,不過密碼都是明文,這樣好像不太安全哦。沒關係
lftp [email protected]:port
系統會提示輸入password,密碼就回顯為******了
不過每次都輸入這麼多,好麻煩哦。 如果有類似leapftp的網站管理器就好了,其實lftp早就給我們想好了: 這就是bookmark。後面我們將會看到。
常用命令
在終端運行
man lftp
或登入ftp後輸入
help
就可以看到命令列表
下面我們看一下lftp常用的命令:
ls
顯示遠端檔案清單(!ls 顯示本地檔案清單)。
cd
切換遠端目錄(lcd 切換本地目錄)。
get
下載遠端檔案。
mget
下載遠端檔案(可以用萬用字元也就是 *)。
pget
使用多個線程來下載遠端檔案, 預設為五個。
mirror
下載/上傳(mirror -R)/同步 整個目錄。
put
上傳檔案。
mput
上傳多個檔案(支援萬用字元)。
mv
移動遠端檔案(遠端檔案改名)。
rm
刪除遠端檔案。
mrm
刪除多個遠端檔案(支援萬用字元)。
mkdir
建立遠端目錄。
rmdir
刪除遠端目錄。
pwd
顯示目前遠端所在目錄(lpwd 顯示本地目錄)。
du
計算遠端目錄的大小
!
執行本地 shell的命令(由於lftp 沒有 lls, 故可用 !ls 來替代)
lcd
切換本地目錄
lpwd
顯示本地目錄
alias
定義別名
bookmark
設定書籤。
exit
退出ftp
快捷書籤
補充aBiNg
ftp中的bookmark命令,是將配置寫到~/.lftp/bookmarks檔案中;我們可以直接修改此檔案,快速登陸ftp伺服器。
3、mirror 同步鏡像,備份伺服器檔案
今天主要的問題是解決如何備份伺服器端檔案的問題。瞭解了mirror指令的用法後,發現比較適合而且好用。
基本使用方法:
1)、下載伺服器端檔案:
# mirror –vn RCD LCD //RCD為遠程路徑,LCD為本地路徑
2)、上傳檔案:
# mirror –R LCD RCD
下附一個自動同步的指令碼:
#!bin/bash
echo “script start at `date ”+%Y-%m-%d %H:%M:%S”
HOST=”hostname”
USER=”yourname”
PASS=”password”
LCD=”LocalePath”
RCD=”RemotePath”
/usr/sbin/lftp << EOF
open ftp://$USER:[email protected]$HOST
mirror $RCD $LCD
EOF
echo “script end at “ `date ”+%Y-%m-%d %H:%M:%S”
linux下使用lftp的小結