lftp
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常想一 个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。 它还有书签、排队、镜像、断点续传、多进程下载等功能。
命令行语法
要看lftp的命令行语法,只要在shell中输入lftp --help
lftp [OPTS] <site> `lftp' 是在 rc 文件执行后 lftp 执行的第一个命令 -f <file> 执行文件中的命令后退出 -c <cmd> 执行命令后退出 --help 显示帮助信息后退出 --version 显示 lftp 版本后退出 其他的选项同 `open' 命令 -e <cmd> 在选择后执行命令 -u <user>[,<pass>] 使用指定的用户名/口令进行验证 -p <port> 连接指定的端口 <site> 主机名, 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>常用命令
- 下载单个文件和一组文件,断点续传用-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相关文件
- /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
- 这个文件用来存储访问过的站点的工作目录