lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。

在不追求速度时,wget已经工作得很好了,网上的资料也很丰富,但是数据较大,有好几个文件,使用wget需要更新2,3个小时(网速只有8M,而且ftp被限速了)。所以只好找一个可以多线程下载的工具。lftp也是Linux移植过来的,功能非常强大,但是资料比wget要少,尤其是在windwos下的使用。

命令参数

-p 端口号
-u 用户名
-e 在选择后执行命令
以下是mirror 项
-c 断点续传
-e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。
-n 只下载较新的档案
-r 不用递回到目录中
--parallel=n 同时下载 n 个档案(预设一次只下载一个)

部分使用案例

lftp.exe piaoyun.cc(服务器IP) -p 1234(端口) -u 用户名,密码  -e "mirror -c -n -r --parallel=1 --use-pget=5 /piaoyun/cc/(FTP连接后的服务器目录) /cygdrive/e(本地磁盘盘符)/piaoyun/"

e:
cd E:\PiaoYunData\
copy D:\tools\lftp\ftpscript.txt E:\PiaoYunData\ /Y
d:\tools\lftp\lftp -f ftpscript.txt

 

ftpscript.txt中的内容:

lftp ftp站点IP -p 21 -u 用户名,密码
mirror -c -e -n -r --parallel=10 /

exit

lftp.exe的使用疑惑

解决windows下目录访问和多线程下载的问题(确实比大多数windows下的图形工具好用太多)

在windows下,如果要指定目录请使用
/cygdrive/你的盘符/盘符下的目录/

多线程请使用:
--use-pget=线程数

比如完整的命令如下:

lftp ftp站点IP -p 21 -u 用户名,密码 -e "mirror -c -e -n -r --parallel=8 --use-pget=10 /piaoyun/cc /cygdrive/e/RemoteData/"

注:本文所有软件在文章结尾有提供国内网盘的打包下载地址,使用的软件是压缩包内的:lftp-4.5.4.win64-openssl-piaoyun.cc.rar

安装方法:
请把压缩包内bin文件夹内的所有 .dll 文件复制到 C:\Windows 目录下,不复制运行批处理或者lftp.exe的时候会提示dll丢失。

Nwgat LFTP镜脚本(仅限SFTP现在)
我也创建了一个简单的脚本,同时具有镜面和反镜,LGET(小和基本的下载utily很像的wget)和标准lftp的控制台
它看起来像这样

Nwgat LFTP镜脚本:
1)mirrorfrom
2)mirrorto
3)lftp
4)lget
5)quit
请输入您的选择:

脚本可以在这里找到:https://github.com/nwgat/lftp
Windows安装:
下载LFTP:
下载:https://github.com/nwgat/lftp/archive/master.zip
复制:lftpmirror-win.sh和lftpmirror-WIN.BAT在放到leftp.exe的bin文件夹
运行:lftpmirror-WIN.BAT

Linux:
wget https://raw.githubusercontent.com/nwgat/lftp/master/lftpmirror.sh
chmod + X ./lftpmirror.sh
./lftpmirror.sh

本文提到的软件下载地址:【如果无法访问请自行解决爬墙问题】
百度网盘:http://pan.baidu.com/s/1sjExfPj
360云盘:http://yunpan.cn/Qa4bBm3LZIy9v  访问密码 f7d7

http://lftp.yar.ru/
http://nwgat.ninja/lftp-for-windows/
http://nwgat.ninja/lftp-4-4-10-for-windows/

爬墙问题可以参考:goagent

暂无评论