今天在解決一個遠(yuǎn)程服務(wù)器備份的問題時,用到了lftp的相關(guān)知識。整理如下:
lftp的功能比較強(qiáng)大,相比原來用ftp,方便了很多。
1、登陸:
lftp ftp://yourname@site
pwd:*****
或 open ftp://yourname@site
2、基本操作(轉(zhuǎn))
lftp使用介紹
lftp 是一個功能強(qiáng)大的下載工具,它支持訪問文件的協(xié)議: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在編譯的時候包含openssl庫)。llftp的界面非常想一個shell: 有命令補(bǔ)全,歷史記錄,允許多個后臺任務(wù)執(zhí)行等功能,使用起來非常方便。它還有書簽、排隊(duì)、鏡像、斷點(diǎn)續(xù)傳、多進(jìn)程下載等功能。
命令行語法
要看lftp的命令行語法,只要在shell中輸入lftp --help
lftp [OPTS]
'lftp'是在 rc 文件執(zhí)行后 lftp 執(zhí)行的第一個命令
-f 執(zhí)行文件中的命令后退出
-c 執(zhí)行命令后退出
--help 顯示幫助信息后退出
--version 顯示 lftp 版本后退出
其他的選項(xiàng)同 'open' 命令
-e 在選擇后執(zhí)行命令
-u [,] 使用指定的用戶名/口令進(jìn)行驗(yàn)證
-p 連接指定的端口
主機(jī)名, URL 或書簽的名字
如果在命令行中輸入的站點(diǎn)名稱,lftp將直接登錄站點(diǎn),比如
$lftp ftp://.............
如果在命令行不輸入站點(diǎn)名稱,則必須在進(jìn)入到lftp界面后用open命令打開
[yhj@ccse-yhj yhj]$ lftp
lftp :~> open ftp://...................
常用命令
* 下載單個文件和一組文件,斷點(diǎn)續(xù)傳用-c參數(shù)
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
* 多線程下載,類似網(wǎng)絡(luò)螞蟻的功能;缺省是5個線程
lftp ................:/> pget -n 4 ls-lR.txt
* 后臺任務(wù)管理
缺省情況下,按 Ctrl+z,正在執(zhí)行的任務(wù)將轉(zhuǎn)為后臺執(zhí)行,也可以在命令行末尾加符號使任務(wù)在后臺執(zhí)行。用jobs命令可以查看所有的后臺進(jìn)程。用queue命令可以排隊(duì)新的任務(wù)。如果退出lftp是還有任務(wù)在后臺執(zhí)行,lftp將轉(zhuǎn)為后臺執(zhí)行。
* 其它用法
lftp支持類似bash的管道操作,例如用下面的命令可以將ftp服務(wù)器上的特定目錄下(也可以是整個站點(diǎn))所有文件的大小存到本地的文件ls.txt中
lftp ................:/> du incoming > ls.txt
相關(guān)文件
/etc/lftp.conf
全局配置文件,實(shí)際位置依賴系統(tǒng)配置文件目錄,可能在/etc,也可能在/usr/local/etc
~/.lftp/rc, ~/.lftprc
用戶配置文件,將在/etc/lftp.conf之后執(zhí)行,所以這里面的設(shè)置會覆蓋/etc/lftp.conf中的設(shè)置。
lftp 缺省不會顯示 ftp 服務(wù)器的歡迎信息和錯誤信息,這在很多時候不方便,因?yàn)槟阌锌赡芟胫肋@個服務(wù)器到底是因?yàn)闆]開機(jī)連不上,還是連接數(shù)已滿。如果是這樣,你可以在 ~/.lftprc 里寫入一行
debug 3
就可以看到出錯信息了。
更多的配置選項(xiàng)請查man手冊或在lftp界面內(nèi)用命令 set -a 獲得。
~/.lftp/log
當(dāng)lftp轉(zhuǎn)為后臺非掛起模式執(zhí)行時,輸出將重定向到這里
~/.lftp/bookmarks
這是lftp存儲書簽的地方,可以lftp查看bookmark命令
~/.lftp/cwd_history
這個文件用來存儲訪問過的站點(diǎn)的工作目錄
~/.lftprc
在用lftp訪問國內(nèi)一些ftp服務(wù)器時,往往看到的中文是亂碼
^_^不用慌,這是由于服務(wù)器和本地編碼不一致造成的。我們只要在主目錄下新建一個文件~/.lftprc或者~/.lftp/rc
并在其中加入以下內(nèi)容:
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服務(wù)器
言歸正傳,我們先來看看怎么登錄ftp服務(wù)器
lftp ftp://user:password@site:port
lftp user:password@site:port
lftp site -p port -u user,password
lftp site:port -u user,password
上面的幾種方式都能正常工作,不過密碼都是明文,這樣好像不太安全哦。沒關(guān)系
lftp user@site:port
系統(tǒng)會提示輸入password,密碼就回顯為******了
不過每次都輸入這么多,好麻煩哦。 如果有類似leapftp的站點(diǎn)管理器就好了,其實(shí)lftp早就給我們想好了: 這就是bookmark。后面我們將會看到。
常用命令
在終端運(yùn)行
man lftp
或登錄ftp后輸入
help
就可以看到命令列表
下面我們看一下lftp常用的命令:
ls
顯示遠(yuǎn)端文件列表(!ls 顯示本地文件列表)。
cd
切換遠(yuǎn)端目錄(lcd 切換本地目錄)。
get
下載遠(yuǎn)端文件。
mget
下載遠(yuǎn)端文件(可以用通配符也就是 *)。
pget
使用多個線程來下載遠(yuǎn)端文件, 預(yù)設(shè)為五個。
mirror
下載/上傳(mirror -R)/同步 整個目錄。
put
上傳文件。
mput
上傳多個文件(支持通配符)。
mv
移動遠(yuǎn)端文件(遠(yuǎn)端文件改名)。
rm
刪除遠(yuǎn)端文件。
mrm
刪除多個遠(yuǎn)端文件(支持通配符)。
mkdir
建立遠(yuǎn)端目錄。
rmdir
刪除遠(yuǎn)端目錄。
pwd
顯示目前遠(yuǎn)端所在目錄(lpwd 顯示本地目錄)。
du
計算遠(yuǎn)端目錄的大小
!
執(zhí)行本地 shell的命令(由于lftp 沒有 lls, 故可用 !ls 來替代)
lcd
切換本地目錄
lpwd
顯示本地目錄
alias
定義別名
bookmark
設(shè)定書簽。
exit
退出ftp
快捷書簽
補(bǔ)充作者:aBiNg
ftp中的bookmark命令,是將配置寫到~/.lftp/bookmarks文件中;我們可以直接修改此文件,快速登陸ftp服務(wù)器。
3、mirror 同步鏡像,備份服務(wù)器文件
今天主要的問題是解決如何備份服務(wù)器端文件的問題。了解了mirror指令的用法后,發(fā)現(xiàn)比較適合而且好用。
基本使用方法:
1)、下載服務(wù)器端文件:
# mirror –vn RCD LCD //RCD為遠(yuǎn)程路徑,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:$PASS@$HOST
mirror $RCD $LCD
EOF
echo “script end at “ `date ”+%Y-%m-%d %H:%M:%S”
P.S:
昨天剛到,今天立馬開工干活,還是有點(diǎn)壓力的,但有壓力是好事,督促自己努力加油!
認(rèn)真思考總結(jié),才能更好更快的成長!
多思考,多總結(jié),快樂成長!