/usr/bin/lftp我们看到有两个工具 lftp 和 lftpget,后者本身是一个 shell script 用来调用 lftp 下载。因此我们主要介绍 lftp 的用法。lftp 一般作为一个交互式程序来运行。它自己会屏蔽 SIGHANGUP 这类信号,如果在还有下载任务时退出或者出现意外断线什么的,这可以保证该进程不会退出。lftp 也不仅仅支持 ftp 协议,它还可以从 ftps、http、https、hftp、fish、sftp 和 file 这些协议下载文件。lftp 提供的交互环境和 shell 类似,下面介绍一些常用的命令:
/usr/bin/lftpget
/usr/share/man/man1/lftp.1.gz
/usr/share/man/man1/lftpget.1.gz
/usr/share/lftp/import-ncftp
/usr/share/lftp/import-netscape
/usr/share/lftp/verify-file
/usr/share/lftp/convert-netscape-cookies
/usr/share/doc/lftp/BUGS
/usr/share/doc/lftp/FAQ
/usr/share/doc/lftp/README.debug-levels
/usr/share/doc/lftp/README.modules
/usr/share/doc/lftp/TODO
/usr/share/doc/lftp/copyright
/usr/share/doc/lftp/NEWS.gz
/usr/share/doc/lftp/README.gz
/usr/share/doc/lftp/changelog.Debian.gz
/usr/share/doc/lftp/changelog.gz
/etc/lftp.conf
- !shell command 执行一个 shell 里面的命令
- anon 使用匿名用户。
- at time -- command 在指定时间执行命令,比如下载等等。
- bookmark add name loc 增加一个地址到书签,bookmark del name 删掉一个书签,bookmark edit 编辑书签文件,bookmark list 列出书签,bookmark import 用于导入书签。
- cache 用于管理 lftp 的缓存,如 cache stat 列出统计信息,cache on/off 打开关闭 cache,cache flush 将 cache 写入硬盘,cache size 设置 cache 大小,cache expire 设置移除 cache 时间。
- cat 将远程文件内容输出到 stdout。
- cd 切换远程路径,lcd 切换本地路径
- chmod 改变远程文件属性。
- close 关闭连接。
- ls 和 cls 都是列出文件信息,但是前者是依照服务器反馈,后者会依照自己的格式。另外 nlist 仅仅列出文件名,不列其他的信息。
- command 忽略 alias 执行命令。
- debug 改变 debug level 并输出到指定文件。
- echo,man page 里面居然写 guess what it does。
- eval 一般都是用来执行某个命令,可以提供指定格式(-f)
- exit,可加 bg 表示退出后强制在后台下载,top 是把登录 shell 也退出了,kill 是杀死未完成任务。
- fg 就是 wait 的 alias,表示在前台等候前一个命令终止。
- find 和 ls -R 类似,但是如果服务器不支持 ls -R 可以用 find。
- get 和 put 是 ftp 里面的基本命令,用于下载或者上传单一一个文件。
- glob 将一个 pattern 转换后传给一个命令,基本用法是 glob command pattern
- jobs 列出现在执行的任务。
- kill 杀死指定任务,或者 kill all 杀死所有的。
- pwd 和 lpwd 显示远程和本地的当前工作目录。
- mirror 用于同步远程和本地的文件/目录,可以从远程同步到本地,也可以从本地同步到远程(-R),可以用 -i 指定下载的文件或者 -x 排除某些文件。
- module 加载模块。
- mkdir 创建目录。
- more 类似 cat 根据 PAGER 设定分页。
- mput 和 mget 使用 wildcard 上传或者下载文件。
- mrm 实际上是 glob rm 的 alias。
- mv 重命名
- open 连接某个站点。
- pget 使用几个连接下载文件。
- quote 直接发送协议里面的命令,如 http 请求等
- reget 和 get -c 一样,reput 和 put -c 一样;rels、renlist 重新生成 cache。
- rm 删除文件。rmdir 删除目录。
- repeat 可以用于反复执行某个命令。
- set 设置变量。
- scache 列出 cached 的 session 或者切换 session。
- sleep 指定时间并退出。
- site 执行 site_cmd。
- source 执行一个文件里面的命令。
- user 设定登录用户和密码。
- version 获取版本号。
- zcat 和 zmore 是调用 zcat 和 zmore 显示压缩文件内容。
下面看看 lftp 的配置,一般系统配置文件放在 /etc/lftp.conf,用户自己的放在 ~/.lftprc 或者 ~/.lftp/rc。一般里面用 alias 指定一些常用的命令,set 设定某些变量值,debug 打开调试状态等。set -a 会显示所有的设置,这里仅仅写一些常用的变量,其他的请参考 man page:
- bmk:save-passwords (boolean) 是否保存站点的登录密码。
- cmd:move-background (boolean) 默认状态下退出是否进入后台。
- cache:size (number) 设置 cache 大小。
- dns:order (list of protocol names) 设置查询 DNS 顺序,默认是先 inet6 后 inet。
- file:charset (string) 存盘文件名编码方式。
- ftp:anon-pass 匿名用户的密码
- ftp:passive-mode (boolean) 所谓 passive mode 就是客户端打开端口反向连接 server 传输。
- ftp:port-range (from-to) 设置打开 PASV 模式使用的端口范围。
- http:proxy 设置 http 的代理。
- net:limit-rate (bytes per second) 限制下载速度。
- net:reconnect-interval-max (seconds) 重连时间。
- pget:default-n (number) 使用 pget 分割的块数。