2009年8月13日星期四

强大的lftp

原来一直认为wget很好用,很少用lftp.研究了一下.没想到lftp也这么强大
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 或书签的名字
例子
1.下载(镜象)
包括目录下的目录下的目录下的目录下的目录下的目录全拷过来。。。
mirror .
–delete: 如果远程目录下已经没有某个文件,而本地有,则删除这个文件。
–only-newer: 只下载新的文件。
–exculde: 不包含某个目录。
–verbose: 详细输出。
2.多线程下载
mirror -c -x b/ –parallel=3 .
上面的"-c"参数是说明支持断点续传;
"-x"参数是表明b目录不需要备份
"–parallel=3"是指同时下载3个文件,换成"-P 3"同效果
3下载某种文件
下传多个普通文件
mget *
mget -c *.pdf
4.上传
mirror -R 本地目录名
将本地目录以迭代(包括子目录)的方式反向上传到ftp site。
5.编码设置
远程ftp
site用gbk编码,对应的要设置为utf8,只要替换gbk为utf8即可。有时会要用到.
代码:
set file:charset utf8
6.改变模式
被动模式的问题需要在执行lftp命令以后,
set ftp:passive-mode off
FQA:
关于镜像文件是否修改的判断
有时我们发现,文件没有改变,但还是直接覆盖目标文件呢?其中很重要的一个原因是源文件(或者不同服务器上)时间发生了发改变,在lftp中主要是使用文件的修改时间和文件大小来来判断.所以这时候,加个
–ignore-time 参数即可,即 mirror –ignore-time
这样我们就只根据文件大小来看文件是否修改
文件更新后,但mirror不能更新
根据测试–only-newer这个只有当文件数量上不同时,才会更新.文件本身更新会不理.所以去年这个参数就行了

没有评论: