感谢原作者:
Lftp是一个基于命令行的文件传输软件(也被称为FTP客户端),由Alexander Lukyanov开发并以GNU GPL协议许可发行。除了FTP协议外,它还支持FTPS,HTTP,HTTPS,HFTP,FISH,以及SFTP等协议。这个程序还支持FXP,允许数据绕过客户端直接在两个FTP服务器之间传输。
它有很多很棒的高级功能,比如递归镜像整个目录树以及断点续传下载。传输任务可以安排在稍后的时间段计划执行,可以限制带宽,可以创建传输列表,还支持类似Unix shell的任务控制。客户端还可以在交互式或自动脚本里使用。
今天在连接客户的一个ftp服务器时报错,如下:
530 This server does not allow plain FTP. You have to use FTP over TLS.
然后就感觉是需要ftps这类的连接,所以就先用工具连接测试
状态:连接建立,等待欢迎消息...
响应:220 Welcome To *** Logistics FTP Server
命令:AUTH TLS
响应:234 Using authentication type TLS
状态:初始化 TLS 中...
状态:正在验证证书...
命令:USER Lenovo-FTP
状态:TLS/SSL 连接已建立。
响应:331 Password required for lenovo-ftp
命令:PASS **************
响应:230 Logged on
命令:SYST
响应:215 UNIX emulated by FileZilla
命令:FEAT
响应:211-Features:
响应: MDTM
响应: REST STREAM
响应: SIZE
响应: MLST type*;size*;modify*;
响应: MLSD
响应: AUTH SSL
响应: AUTH TLS
响应: PROT
响应: PBSZ
响应: UTF8
响应: CLNT
响应: MFMT
响应: EPSV
响应: EPRT
响应:211 End
命令:PBSZ 0
响应:200 PBSZ=0
命令:PROT P
响应:200 Protection level set to P
状态:已连接
状态:读取目录列表...
命令:PWD
响应:257 "/" is current directory.
命令:TYPE I
响应:200 Type set to I
命令:PASV
响应:227 Entering Passive Mode (192,168,0,26,20,213)
状态:服务器发回了不可路由的地址。使用服务器地址代替。
命令:MLSD
响应:150 Opening data channel for directory listing of "/"
响应:226 Successfully transferred "/"
状态:列出目录成功
响应:421 Connection timed out.发现正常。此时,就想尝试换一种连接方式,看到了lftp
lftp ftp用户:ftp密码@服务器地址
然后连接成功了,ls后看到了目录下的文件。
以下为转载,仅供参考。
下面介绍一下lftp常见的强大的用法:
本地目录的操作:
lcd 切换目录
lpwd 显示当前目录
ftp端的操作:
cd 切换目录
ls 显示当前目录文件列表
pwd 显示当前目录
rm 删除文件
mkdir 创建文件夹
rmdir 删除文件夹
文件上传下载操作:
单个文件:
上传: put 文件名
下载: get 文件名
多个文件:
上传多个文件(支持通配符):mput 文件名1 文件名2
下载多个文件(支持通配符):mget 文件名1 文件名2
整个目录:
上传文件夹:mirror -R 文件夹名
下载文件夹:mirror 下载文件夹存放到本地目录的位置
当然lftp还有书签等很多非常强大的操作,但是上面的操作已经可以使您完成ftp最基本的操作。
lftp是一个功能强大的下载工具,它支持访问文件的协议:ftp,sftp, ftps, http, hftp, fish.(其中ftps和https需要在编译的时候包含openss库)。lftp的界面和shell很像:有命令补全功能,历史记录,允许多个后台任务执行等功能,使用起来比较疯便。而且它还具有书签,排队,镜像,断点续传,多进程下载等功能。
1、登录ftp
//命令格式:
lftp用户名:密码@ftp地址:传送端口(默认为21)
用法
(1)lftp username:password@127.0.0.0 回车
(2)lftp username@127.0.0.0 回车 #默认端口为21 ,回车后输入密码
(3)lftp 127.0.0.0 回车 ##回车后 login [] 登录
(4)lftp 回车 -->open 127.0.0.0-->login 登录
//如果在命令行中输入站点的名称,lftp将直接登录站点
如:ivy@ivy-OptiPlex-380:~$ lftp ftp://androidftp:androidftp@192.168.12.76/
cd 成功, 当前目录=/
lftp androidftp@192.168.12.76:/>
//如果不在命令行输入站点名称,则必须在进入到ftp界面后用open命令打开
2、下载文件
下载文件前首先要设置还本地的目录,用来存放下载的文件
lcd /home/ivy/doc ##设置本地存放目录get filename (如1.txt,ppt, pdf) //下载单个文件mget *.txt //下载一组文件,也即是批量下载所有的txt文件
get -c 1.txt //断点续传下载
mget -c *.txt //断点续传
pget -c n 10 file.dat //最多10个线程以允许断点续传的方式下载file.dat
mget -d dirname/(通配符*) //下载目录
mirror dirname //将目录的整个下载下来,子目录也会自动复制到,本地自动建立目录
3、 上传文件put 1.txt
mput *.txt
mirror -R miao //上传整个目录
mput -d dirname/* #上传目录
!ls浏览本体目录
cd切换到远端目录(lcd 切换到本地目录)
基本使用方法:
1)、下载服务器端文件:
# mirror –vn RCD LCD //RCD为远程路径,LCD为本地路径
2)、上传文件:
# mirror –R LCD RCD4.从远程主机上下载目录文件通过sftp下载目录:
lftp sftp://user@host -p port lftp :> mirror my_path