最近搭了buffalo NAS機(jī)器(PS:這個(gè)機(jī)器有點(diǎn)垃圾责蝠,不開(kāi)SSH自動(dòng)化太低俺附,傻瓜型浪蹂,用處不大)抵栈,用windows下文件夾ftp訪問(wèn)以及工具訪問(wèn)ftp都正常,但是用linux下ftp命令行訪問(wèn)時(shí)坤次,cd 中文目錄就報(bào)no such file or directory錯(cuò)誤古劲,因?yàn)閒tp服務(wù)端接收到的目錄名亂碼了。
網(wǎng)絡(luò)上搜了下有另外個(gè)ftp命令行工具lftp缰猴,試了下可以解決該問(wèn)題产艾,該工具可以進(jìn)行ftp的字符集設(shè)置,功能也比較強(qiáng)大滑绒,最主要有mirror和多線程功能闷堡。
mirror
mirror aaa
將aaa目錄整個(gè)的下載下來(lái),子目錄也會(huì)自動(dòng)復(fù)制 本地自動(dòng)建立目錄
mirror OPTS remote [local]
下載整個(gè)目錄(樓上的 get 只能用來(lái)抓檔案)
-c 續(xù)傳
-e 這個(gè)要小心一些, 比較遠(yuǎn)端和本地端的檔案, 假如遠(yuǎn)端沒(méi)有的, 就將本地端的檔案刪除, 也就是將本地端和遠(yuǎn)端資料同步疑故。
-R 上傳整個(gè)目錄
-n 只下載較新的檔案
-r 不用遞回到目錄中
--parallel=n 同時(shí)下載 n 個(gè)檔案(預(yù)設(shè)一次只下載一個(gè))
多線程
pget -c -n 10 file.dat
以最多10個(gè)線程以允許斷點(diǎn)續(xù)傳的方式下載file.dat
下載目錄腳本
ftpip=x.x.x.x
ftpuser=user
ftppsd=psd
ftpdir=d1/d2
getfile()
{
#ftp -niv<<!
lftp <<!
open $ftpip
user $ftpuser $ftppsd
cd $ftpdir
#binary
#prompt
#mget $1
mirror -n $1
bye
!
}
if [ x"$1" = x ]
then
echo "Usage: $0 <directory>"
exit
fi
cd /backup/data
mkdir -p $1
getfile $1