操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

Linux操作系统上Lftp工具使用的一些技巧

2007-11-20 网友评论 0 条 点击进入论坛

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

  命令行语法

  要看lftp的命令行语法,只要在shell中输入lftp --help

  lftp [OPTS] `lftp' 是在 rc 文件执行后 lftp 执行的第一个命令 -f 执行文件中的命令后退出 -c 执行命令后退出 --help 显示帮助信息后退出 --version 显示 lftp 版本后退出其他的选项同 `open' 命令 -e 在选择后执行命令 -u [,] 使用指定的用户名/口令进行验证 -p 连接指定的端口 主机名, URL 或书签的名字

  如果在命令行中输入的站点名称,lftp将直接登录站点,比如

  [yhj@ccse-yhj yhj]$ lftp ftp://dsec.pku.edu.cn:27/incoming/ ... ... (此处略去站点登录信息) cd 成功,当前目录=/incoming lftp dsec.pku.edu.cn:/incoming>

  如果在命令行不输入站点名称,则必须在进入到lftp界面后用open命令打开

  [yhj@ccse-yhj yhj]$ lftp lftp :~> open ftp://dsec.pku.edu.cn:27/incoming/ cd 成功,当前目录=/incoming lftp dsec.pku.edu.cn:/incoming>

  相关文件

  /etc/lftp.conf

  全局配置文件,实际位置依赖系统配置文件目录,可能在/etc,也可能在/usr/local/etc

  ~/.lftp/rc, ~/.lftprc

  用户配置文件,将在/etc/lftp.conf之后执行,所以这里面的设置会覆盖/etc/lftp.conf中的设置。

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

  debug 3

  就可以看到出错信息了。

  更多的配置选项请查man手册或在lftp界面内用命令 set -a 获得。

  ~/.lftp/log

  当lftp转为后台非挂起模式执行时,输出将重定向到这里

  ~/.lftp/bookmarks

  这是lftp存储书签的地方,可以lftp查看bookmark命令

  ~/.lftp/cwd_history

  这个文件用来存储访问过的站点的工作目录

  常用命令

  下载单个文件和一组文件,断点续传用-c参数

  lftp dsec.pku.edu.cn:/> get -c ls-lR.txt

  lftp dsec.pku.edu.cn:/> mget *.txt

  镜像(反镜像即上传)一个目录,可以用多个线程并行镜像一个目录(--parallel=N)

  lftp dsec.pku.edu.cn:/> mirror incoming local_name

  lftp dsec.pku.edu.cn:/> mirror -R local_name

  lftp dsec.pku.edu.cn:/> mirror --parallel=3 incoming local_name

  多线程下载,类似网络蚂蚁的功能;缺省是5个线程

  lftp dsec.pku.edu.cn:/> pget -n 4 ls-lR.txt

  后台任务管理

  缺省情况下,按 Ctrl+z,正在执行的任务将转为后台执行,也可以在命令行末尾加&符号使任务在后台执行。用jobs命令可以查看所有的后台进程。用 queue命令可以排队新的任务。如果退出lftp是还有任务在后台执行,lftp将转为后台执行。

  其它用法

  lftp支持类似bash的管道操作,例如用下面的命令可以将ftp服务器上的特定目录下(也可以是整个站点)所有文件的大小存到本地的文件ls.txt中

  lftp dsec.pku.edu.cn:/> du incoming > ls.txt

  !shell command

  anon 匿名登录

  at time [-- command] 在给定时间执行命令.eg:‘at 08:00 -- exit top kill &

  cls和ls区别:ls是由服务器来格式化输出,cls则是由lftp自己来格式化,类似shell中的ls命令

  command cmd args... 直接运行cmd,忽略alias

  exit [bg] [top] [kill]

  find 可遍历目录,用于缺乏ls -R文件的服务器

  glob [-d] [-a] [-f] command pattern:用于模式扩展,普通的lftp命令没有模式扩展功能

  -f plain files(default)

  -d directories

  -a all files

  kill all | job_no 杀死全部job或指定job号

  mirror [OPTS] [source [target]]

  -r, --no-recursion don’t go to subdirectorie

  - R, --reverse reverse mirror (put files)

  queue [-n num ] cmd

  quote cmd

  rels [args] 同ls,只是不用cache。

  repeat [ -c ] [[-d] delay] [command]

  重复执行command,默认间隔1秒

  -c 重复次数

  --while-ok breaks loop when command returns non-zero exit code;

  --until-ok’ breaks on zero exit code.

  Examples:

  repeat at tomorrow -- mirror

  repeat 1d mirror

  file:charset (string)

  设置本地字符集,初始化默认读取系统locale

  ftp:charset (string)

  ftp服务器端字符集,默认为空,即本地系统locale同,只在server不支持utf-8时用

  我的设置:

  set ftp:charset "gbk"

  set sftp:charset "UTF-8"

  set file:charset "UTF-8"

  ftp:passive-mode (boolean)

  默认为被动模式

  设置ftp的被动模式,在有防火墙或者转发路由时用

  lftp在被动模式用PASV命令,而不用主动模式的PORT命令

  passive mode:lftp自己建立到ftp server的连接

  active mode: ftp server建立数据传输的连接

  我的设置:

  # default: use passive mode

  set ftp:passive-mode yes

  ## 202.38.64.22, use active mode

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46430 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail