Linux/Centos下ftp客户端lftp使用

原文链接:http://www.haiyun.me/archives/linux-lftp.html

安装:

1
yum install lftp -y

使用语法:

1
2
3
4
5
6
lftp -[fceup] user:passwd@host #passwd可选,此方式密码明文保存,history可查看
-f <file>           #执行文件中的命令后退出
-c <cmd>        #执行命令后退出
-e <cmd>         #登录后后执行命令
-u <user>[,<pass>]  #使用指定的用户名/口令进行验证
-p <port>           #连接指定的端口,默认21

常用命令:

1
2
3
4
5
6
7
8
9
cd #切换FTP目录
lcd #切换本地目录
ls  #列出FTP目录文件
!ls #列出本地目录文件
find ./ -name file #查找文件
mv #移动
rm #删除
mkdir #新建目录
rmdir #删除目录

上传下载文件:

1
2
3
4
5
6
7
8
get [cEaO] file -o newfilename #下载文件
put [cEaO] file -o newfilename #上传文件
pget -n #多线程下载
可选参数:
-c #支持断点续传
-E #下载后删除远端文件
-a #指定传输为ascii模式, 默认为二进制模式
-O #指定存放目录

上传下载目录:

1
2
3
4
5
6
mirror [cRnr] remote [local]
可选参数:
-c #支持断点续传
-R #上传整个目录
-n #只下载较新的档案,可用于增量备份
-r  #只下载当前目录,不递归目录

书签管理:

1
2
3
4
bookmark add name #保存当前连接为书签名字name,下次打开可直接使用lftp name
bookmark del name #删除书签
bookmark list #显示书签列表
bookmark edit #编辑书签

编码设置:

1
2
3
set ftp:charset "gbk"
set file:charset "UTF-8"
或加入配置文件.lftp/rc

主动/被动模式:

1
2
3
#默认为被动模式
set ftp:passive-mode no #关闭被动模式转为主动模式
#主动客户端开启数据传输端口,被动服务端开启数据传输端口。

妙用lftp多线程下载:

1
lftp -c "pget -n 10 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.gz"

Linux FTP客户端 Lftp 使用方法

06-08

1. 一气呵成式rn$ lftp (ftp://)user:password@site:portrn比较常用于网页或bbs上给出的现成链接,缺点是password显示为明文,推荐在月黑风高、四下无人的环境里偷偷输入...如果不幸背后有人rn$ lftp (ftp://)user@site:portrn然后系统会提示输入password,这是就是******了rnrn2. 老实巴交型rnrn$ lftp site -p port -u user,passwordrn这是lftp说明文档里给出的标准方式,这一招比较费体力,请根据自己身体情况量力而行。如果体能一般,可以rn$ lftp site:port -u user,passwordrn似乎是略微省事一点儿,我一般也用这种方法rnrn3. 五短之中暗藏一长rnrn这是一个递归嵌套的招式%¥#@!×&rn$ lftprnlftp:~>lftp user:password@site:portrn就是说在lftp控制台里进行操作,和在系统终端是完全一样的,你仍然可以毫无顾忌地用使用前面两招,同时也可以用o或open代替lftp,后面站点用户名密码的格式也可以根据自己偏好输入rnrn4. 终极大招rnrn每次登录都狂敲一行user:password@site:port,长年累月,就算李铁来了也扛不住。所以还是要让lftp把常用的站点记下来,就象FlashFXP里的站台管理器,在lftp里,叫做bookmark,具体的咱们日后再说rnrn登 录完成第一件事就是想看看这个服务器上有什么好东东。操作和终端里是一样的,ls就是列出服务器目录。有一点要说明,第一次ls之后,目录表就被保存到了 本地cache,这样再次ls就不能得到这个目录下最新的列表,这时可以用rels重新下载目录表。这里的cache是lftp的默认设置,目的无非就是 更快的得到列表,有时却不符和你的使用习惯。可以用 cache on和cache off开关cache,也可以用cache flush来清空cache。更改目录也是cd,没什么可说的,lftp也支持tab匹配功能,大大减少了劳动强度。rnrnlftp 支援了六种模式, ftp, ftps, http, https, hftp, fish and file(当然了 https 和 ftps 的支援必须在编译就和 openssl library 一起编译好)。rnrnlftp 内建了 shell-like 的命令格式, 允许在背景同时执行多个命令(&)。所有背景执行的工作都是在同一个程序中(process), 能将前景执行的命令放到背景执行(Ctrl-z), 或从背景拿回前景执行(wait 或 fg), 甚至还可以经由上个命令的传回值来决定目前这个命令是否要执行(&& ||)。rnrn在结束 lftp 时, 如果还有程序执行中, lftp 会将自己切换到 no hup 模式並放到背景执行。因此不必担心执行 lftp 当中无法登出。rnrn!rn可执行本地端 shell 中的命令, 如 !ls /usr/local/bin/由於 lftp 並没有 lls(显示本地端档案列表的指令), 故可用 !ls 来替代。rnrnalias []rn定义别名rnalias less morernalias reconnect "close; cd ."rn直接输入 alias 即可看到目前定义了那些别名。如果只输入 alias name 的话, 则是取消 name 这个别名。rnrnbookmark SUBCMDrn设定书籤, 可将目前站台及所在目录设成书籤, 下次可直接进来, 不用再 cd 来 cd 去的rnrnbookmark add name 用来新增名称为 name 的书籤rnbookmark del name 删除名称为 name 的书籤rnbookmark list 显示目前有设定那些书籤(另外直接打 bookmark 和 bookmark list 的结果一样)rnbookmark edit 呼叫编辑器修改书籤 (~/.lftp/bookmarks)rnrncd 切换远端目录rnrncache SUBCMDrn管理 lftp 的 cachernrnrels []rn从 cache 中显示远端档案列表rnrels 则不会从 cache 中读取rnrnrecls opts [path/]patternrn从 cache 中显示远端的档案列表, 应该算是 ls 的加强版, 有很多参数可用,应该是可用来产生各种不同>的档案列表以供其他程式使用。rnrecls 则不会从 cache 中读取rnrndu optionsrn计算远端整个目录佔用容量rnrnget OPTS -orn抓取远端档案rnrnget rfile -o lfilern抓 rfile 到本地改名为 lfilern-c 为续传rn-E 抓档完成後, 将远端的档案砍了rn-a 为 ascii mode, 预设为 binary modern-O 设定 base directory 为本地端放档案的目录rnrnmget OPTSrn下载远端档案(可用 wildcard expansion 也就是 *)rnrnpget OPTS -orn使用多个连结来下载档案, 预设为五个。rn-n 3 为叁个连结rnrnjobs -vrn显示目前有那些程序在背景执行rn-v 显示详细的资讯(-v 可多加幾个来显示更详细的资讯)rnrnlcdrn切换本地端的目录rnrnmirror OPTS remote [local]rn下载整个目录(楼上的 get 只能用来抓档案)rn-c 续传rn-e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。rn-R 上传整个目录rn-n 只下载较新的档案rn-r 不用递迴到目录中rn--parallel=n 同时下载 n 个档案(预设一次只下载一个)rnrnmodule name argsrn载入模组rnrnput OPTS -orn上传档案rnrnmput OPTSrn上传档案(可用 wildcard expansion 也就是 *)rnrnmvrn将远端的 file1 改名为 file2rnrnmrmrn用 wildcard expansion 方式来删除远端档案rnrnopen OPTSrn开启某个站台rnopen -u , -p siternrnqueue OPTS []rn将 cmd 放到伫列中等待执行rn-d index 将编号为 index 的 job 删除rn-m index new_index 将编号为 index 的 job 移至编号 new_index, 插队专用。rn-n index 在编号 index 之前新增一个 jobrnrnwait []rn将背景执行中的程序移至前景(也可用 fg)rnrnkill all|rn删除全部的 jobs 或 job_nornrnrepeat delay commandrn每隔 delay 秒, 重覆执行 command, 预设是每隔一秒rnrnrm -r -frn移除远端档案rnrnmkdir -prn建立远端目录rnrnrmdir -frn移除远端目录rnrnset OPT []rn设定变数rn直接键入 set 可看目前定义了那些变数rnrnsourcern读取 file, 並执行 file 中的命令(应该是和 bash 中的 source 命令是一样的吧)rnrndebug [|off] -orn设定 debug level 为 levelrn-o 将输出导向至 filernrnexit [|bg]rn结束 lftprn此时若还有 jobs, 则会将 lftp 放至背景执行, 继续未完成的工作rnrnhistory -w file-r file-c|-l cntrn和 bash 中的 history 功能一样rnrnrenlist []rn只显示远端的档名rnrnpwd -prn显示目前远端所在目录rn-p 连登入密码也显示rnrnscache []rn只打 scache 显示目前所有的 session, 加上 session_no 可切换至其他的 session,rn对於同时开启多个站台或同个站台不同目录间切换。rnrn小 弟有遇过某些站台, 一个 ip 只允许登入一次的,如果想同时抓好幾个档案在不同目录下,就只能一次抓一个,等到抓完了才能再切换到别的目录去抓第二个, 这时 lftp 的 queue 就派上用场了。一般下了 get, mget 的话, 档案就直接开始下载了, 这时就无法再切换到其他目录了, 因此, 先将 queue 给停止, 首先下个 queue, 按 enter, 再下个 jobs 即可看到目前 queue 是停止的。这时再将要抓的东东一个个加入 queue 中, 等到要抓的东东都进入 rnqueue 後, 再下 queue start 一次全部传送, 这样子可省去随时注意档案是否抓完,迼成困扰。rnrnlftp localhost:/pub/Iso> queuernrnlftp localhost:/pub/Iso> jobsrn0 queue (ftp://localhost)rnQueue is stopped.rnrnlftp localhost:/pub/Iso> queue get rettcd.isornrnlftp localhost:/pub/Iso> jobsrn0 queue (ftp://localhost)rnQueue is stopped.rnCommands queued:rn1. get rettcd.isornrnlftp localhost:/pub/Iso> queue mirror Linux/rnrnlftp localhost:/pub/Iso> jobsrn0 queue (ftp://localhost)rnQueue is stopped.rnCommands queued:rn1. get rettcd.isorn2. mirror Linux/rnrnlftp localhost:/pub/Iso> queue startrnrnlftp localhost:/pub/Iso> jobsrn0 queue (ftp://localhost)rnNow executing: 1 get rettcd.isornCommands queued:rn1. mirror Linux/rn1 get rettcd.isorn`rettcd.iso' at 4772864 (9%) 3.00M/s eta:14s Receiving datarn相关文件rnrn/etc/lftp.confrn全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/etrncrnrn~/.lftp/rc, ~/.lftprcrn用户配置文件,将在/etc/lftp.conf之后执行,所以这里面的设置会覆盖/etc/lftp.conf中的设置。rnlftp 缺省不会显示 ftp 服务器的欢迎信息和错误信息,这在很多时候不方便,因为你有可能想知道这个服务器到底是因为没开机连不上,还是连接数已满。如果是这样,你可以在 ~/.lftprc 里写入一行rnrndebug 3rnrn就可以看到出错信息了。rn更多的配置选项请查man手册或在lftp界面内用命令 set -a 获得。rnrn~/.lftp/logrn当lftp转为后台非挂起模式执行时,输出将重定向到这里rnrn~/.lftp/bookmarksrn这是lftp存储书签的地方,可以lftp查看bookmark命令rnrn~/.lftp/cwd_historyrn这个文件用来存储访问过的站点的工作目录rnrn碰到一个中文字符集显示的问题, Remote FTP Server 的 Charset 是 gb2312 的, 我若直接 ls, 所有中文字符都是乱码, 根本没有办法使用. 要这样给一个参数才行:rnrnlftp ryun@www.example.com:/>set ftp:charset gb2312rnrn然后再 ls 一下看看, 是不是亲切多了 ^____^rnrn这里还有一个方法, 针对经常使用中文字符集FTP的朋友可以这样来设定配置文件:rnrntouch ~/.lftp/rcrnecho 'debug 4' >> ~/.lftp/rcrnecho 'set ftp:charset GBK' >> ~/.lftp/rcrnrn现在 lftp 后直接支持中文字符显示rnrn无法被动模式连接,转为主动模式就可以列目录了:在 lftp 登录后执行:rnset ftp:passive-mode no

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭