Total Pageviews

Wednesday, 24 February 2016

lftp工具:ftp客户端工具

lftp HOST
-u USERNAME,PASSWORD
-p PORT
-e ‘CMD’
------------------------------------------

lftp使用方法

首先,所有的 lftp 终端内的命令,都可以用

help command

的方式来查看帮助信息。

另外,lftp 支持 tab 自动补全,记不得命令是,多打两个 tab,就可以看到可能的选项了。

登录ftp

lftp ftp://user:password@ip:port

也可以先不带用户名登录,然后在接口界面下用login命令来用指定账号登录,密码不显示。

查看文件与改变目录

ls
cd ftpdir

嘿嘿,很简单吧?其实,在 lftp 终端中,前面带一个 l 的命令例如 lcd,指的是 local,就是在本机的操作,而对应的没有这个 l 的,都是对 ftp site 的操作。还有就是要执行本地终端命令,也可以用前面带一个!的方式。这样,配合起来,终端,本地的操作都很放遍。 例如,查看 ftp 上所有的以 mp3 为扩展名的文件:

find . -name "*.mp3"

下载

get 当然是可以的,还可以

mget -c a.pdf

把所有的 pdf 文件以允许断点续传的方式下载。m 代表 multi

mirror aaa/

将 aaa 目录整个的下载下来,子目录也会自动复制

pget -c -n 10 file.dat

以最多10个线程以允许断点续传的方式下载 file.dat 可以通过设置 pget:default-n 的值而使用默认值。

上传

同样的 put,mput,都是对文件的操作,和下载类似。

mirror -R localdir

将本地目录以迭代(包括子目录)的方式反向上传到 ftp site。

模式设置。

set ftp:charset gbk

远程 ftp site 用 gbk 编码,对应的要设置为 utf8,只要替换 gb k为 utf8 即可。

set file:charset utf8

本地的 charset 设定为 utf8,如果你是 gbk,相应改掉。

set ftp:passive-mode 1

使用被动模式登录,有些 site 要求必须用被动模式或者主动模式才可以登录,这个开关就是设置这个的。0 代表不用被动模式。

书签

其实命令行也可以有书签,在 lftp 终端提示符下:

bookmark add linuxbbs

就可以把当前正在浏览的 ftp site 用 ustc 作为标签储存起来。以后在 shell 终端下,直接

lftp linuxbbs

就可以自动填好用户名,密码,进入对应的目录了。

bookmark edit

会调用编辑器手动修改书签。当然,也可以看到,这个书签其实就是个简单的文本文件。密码,用户名都可以看到。

配置文件 /etc/lftp.conf

一般,我会添加这几行:

set ftp:charset gbk
set file:charset utf8
set pget:default-n 5

这样,就不用每次进入都要打命令了。其他的 set 可以自己 tab 然后 help 来看。

lftp 的上传下载的速度限制

lftp.conf 中加入

set net:limit-rate 10000,10000

lftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在很多时候不方便,因为你有可能想知道这个服务器到底是因为没开机连不上,还是连接数已满。如果是这样,你可以在 ~/.lftprc 里写入一行

debug 3

下载文件命令:续传,下载多个文件,多线程

lftp> get -c filename
lftp> mget *.file
lftp> pget -n 4 filename

下载/上传/多线程 文件夹

lftp> mirror dir
lftp> mirror -R dir
lftp> mirror --parallel=3 dir

纠正乱码显示中文及显示登录消息设置,修改 /etc/lftp.conf,加入一段

#myset begin
set ftp:charset "gbk"
set file:charset "UTF-8"
#end
debug 3

更改本地下载目录

ftp> lcd ldir

默认为 /home/user 比如改成 lcd /home/user/download

队列命令(不必等到下载完毕再输入命令)

> queue

查看后台队列

> jobs

加入队列

> queue get file
> jobs
> queue start
> jobs

ctrl+z 后台运行

退出

ctrl+d


$lftp
> help lftp

可以查看 lftp 的更多命令,其中尤其是 put, mput, 和 get,mget完全对应。

例如

上传单个 html 文件到服务器一级目录下

> put localdir/index.html

上传多个html文件到服务器一级目录下

> mput localdir/*.html

转自ubuntu中文社区(稍作修改)

下面是我个人的配置

#debug 3
set ftp:charset "gbk"
set sftp:charset "UTF-8"
set file:charset "UTF-8"
alias gbk "set ftp:charset gbk; set file:charset UTF-8"
alias utf8 "set ftp:charset UTF-8; set file:charset UTF-8"
alias passive "set ftp:passive-mode"
set ftp:ssl-auth TLS-P
set ftp:ssl-protect-data yes
set ftp:use-feat no
set ssl:verify-certificate no
set ftp:ssl-allow no
set ftp:ssl-force no
set ftp:passive-mode yes
set pget:default-n 1
#set persist-retries 5
set reconnect-interval-base 999
set reconnect-interval-multiplier 1
set net:limit-rate 61440,1024000
set prompt "\[\e[1;36m\]lftp\[\e[m\] \[\e[0;32m\]\S\? \u\@\h:\w>\[\e[m\] "
set ftp:list-empty-ok yes