最近搭了buffalo NAS机器(PS:这个机器有点垃圾,不开SSH自动化太低,傻瓜型,用处不大),用windows下文件夹ftp访问以及工具访问ftp都正常,但是用linux下ftp命令行访问时,cd 中文目录就报no such file or directory错误,因为ftp服务端接收到的目录名乱码了。
网络上搜了下有另外个ftp命令行工具lftp,试了下可以解决该问题,该工具可以进行ftp的字符集设置,功能也比较强大,最主要有mirror和多线程功能。
mirror
mirror aaa
将aaa目录整个的下载下来,子目录也会自动复制 本地自动建立目录
mirror OPTS remote [local]
下载整个目录(楼上的 get 只能用来抓档案)
-c 续传
-e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。
-R 上传整个目录
-n 只下载较新的档案
-r 不用递回到目录中
--parallel=n 同时下载 n 个档案(预设一次只下载一个)
多线程
pget -c -n 10 file.dat
以最多10个线程以允许断点续传的方式下载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