感谢原作者:
http://blog.csdn.net/dliyuedong/article/details/17199665
http://blog.csdn.net/dliyuedong/article/details/18013267
http://blog.csdn.net/u011391839/article/details/11771367
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:[email protected] 回车
(2)lftp [email protected] 回车 #默认端口为21 ,回车后输入密码
(3)lftp 127.0.0.0 回车 ##回车后 login <用户|URL> [<密码>] 登录
(4)lftp 回车 -->open 127.0.0.0-->login 登录
//如果在命令行中输入站点的名称,lftp将直接登录站点
如:ivy@ivy-OptiPlex-380:~$ lftp ftp://androidftp:[email protected]/
cd 成功, 当前目录=/
lftp [email protected]:/>
//如果不在命令行输入站点名称,则必须在进入到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 RCD
4.从远程主机上下载目录文件
通过sftp下载目录:
lftp sftp://user@host -p port
lftp :> mirror my_path