探讨:强大的lftp命令的用法举例

发布时间:2020-09-18编辑:脚本学堂
本文介绍下,linux下强大的lftp命令的具体用法,有需要的朋友,参考下吧。

lftp命令:可以命令补全,有历史记录,允许多个后台任务执行等功能。
另外,它还有书签、排队、镜像、断点续传、多进程下载等功能。
仅上面列出的这些功能,就够你膜拜的了,快花时间好好学习下 lftp命令 的用法吧。

$lftp --help
语法介绍
lftp [OPTS] <site>   
`lftp' 是在 rc 文件执行后 lftp 执行的第一个命令    
 -f <file>           执行文件中的命令后退出
      -c <cmd>            执行命令后退出
      --help              显示帮助信息后退出
      --version           显示 lftp 版本后退出
      其他的选项同 `open' 命令
      -e <cmd>            在选择后执行命令
      -u <user>[,<pass>]  使用指定的用户名/口令进行验证
      -p <port>           连接指定的端口 
 
下面举一些lftp命令的具体用例,供大家参考。

1,下载(镜象)
镜像全目录:
$ mirror .
–delete: mirror命令会删除远程备份服务器中存在的文件而本地服务器不存在的文件
–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  本地目录
$ mirror -R  本地目录 远程目录
将本地目录以迭代(包括子目录)的方式反向上传到ftp site.

5,编码设置
远程ftp site用gbk编码,对应的要设置为utf8,只要替换gbk为utf8即可.有时会要用到.
$ set file:charset utf8
 
6,改变模式
被动模式的问题需要在执行lftp命令以后,
set ftp:passive-mode off

7,自动镜象同步远程和本地的文件
如果加一个 -R 的选项,就会上传到服务器上做同步,不加,就是给远程服务器上的文件同步到本地目录
$ lftp -u username,password -e "mirror --delete --only-newer --verbose 本地目录 远程目录" ftpsite
 
#---相关问题与解答。

1,关于镜像文件是否修改的判断?
有时,文件没有改变,但还是直接覆盖目标文件呢?
很重要的一个原因是源文件(或不同服务器上)时间发生了发改变,在lftp中主要是使用文件的修改时间和文件大小来来判断。
此时,可以加个 –ignore-time 参数,mirror  –ignore-time,如此便只根据文件大小来检查文件是否修改了。

2,文件更新后,mirror不能更新的问题?
–only-newer参数,仅在文件数量上不同时,才会更新。
文件本身更新则不理会,因此,去掉此参数即可。