首页 » Linux » liunx基础 » 阅读文章
linux lftp命令详解
以前写过一篇lftp的备份用法,当时理解的还不够深刻,今天在详细记录下。
lftp简介
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
1.常见登录到对方服务器方法
#登录到ftp--法1 lftp (ftp://)user:password@site:21 #ftp://可以省略,默认21端口可以省略 #登录到ftp--法2 lftp (ftp://)user@site:port #这种方式回车后,系统提示输入密码 #登录到sftp---法1 lftp sftp://user:password@site:22 #如果是默认端口22,可以省略,如果不是就必须填写端口号 #登录到sftp---法2 lftp sftp://user@password:port
当然lftp的登录方式还有很多种记录常用的即可
2.lftp常用option,lftp [OPTS]
-f #执行文件中的命令后退出 -c #执行命令后退出 --help #显示帮助信息后退出 --version #显示 lftp 版本后退出 #其他的选项同 'open' 命令 -e #在选择后执行命令 -u [,] #使用指定的用户名/口令进行验证 -p #连接指定的端口
3.登录后常用命令
cd #切换远端目录, lcd 切换本地目录 ls #显示远端文件列表 !ls 显示本地文件列表 get #下载远端文件 mget 下载远端文件可以用通配符也就是 *,pget 使用多个线程来下载远端文件, 预设为五个。 mirror #下载/上传(mirror -R)/同步 整个目录。 put #上传文件 ,mput 上传多个文件(支持通配符) mv #移动远端文件(远端文件改名) rm #删除远端文件, mrm 删除多个远端文件(支持通配符) mkdir #建立远端目录 ,rmdir删除远端目录 pwd #显示目前远端所在目录,lpwd 显示本地目录 du #计算远端目录的大小 ! #执行本地 shell的命令,如!date alias #定义别名 bookmark #设定书签 exit #退出ftp
注:ftp中的bookmark命令,是将配置写到~/.lftp/bookmarks文件中;我们可以直接修改此文件,快速登陆ftp服务器。
3.小技巧
lftp中文乱码问题
set ftp:charset gbk #(或者 gb2312 或 utf-8) 设置ftp端的编码格式 set -a 查看所有可以设置的命令
设置被动/非被动模式
set ftp:passive-mode 1 ## 1 被动 0主动
查找ftp端文件
ls *.txt ##查找当前目录下的所有txt文件 ls ./123/ ##列出123目录下所有文件 find . -name "*.txt" ##递归查找站点上所有的txt文件 find ./xx -name "*.txt" ##查找xx目录下所有的txt文件
ls第二次读取的是本地缓存,可以用 rels 代替 ls 或者catch off / catch on 来开关catch,catch flush清空本地catch
多任务处理
ctrl+z ##将当前进行的任务移交后台处理,也可以在命令行末尾加&符号使任务在后台执行 wait ##将后台处理任务调至前台查看 jobs ##查看后台进行的任务列表 kill all 或者 job_no ##删除所有任务 或 指定的任务 queue start ##开始任务列表 queue stop ##停止任务列表 ##将任务加入任务列表 queue get 123.txt queue put 234.txt queue mirror aaa/
定义别名
alias #查看所有定义的别名 alias less more #定义别名 将less定义为more的功能 alias less #后面直接跟别名,取消别名
bookmark 书签
bookmark add [name] #增加名称为 name 的书签 bookmark del [name] #删除名称为 name 的书签 bookmark list #显示目前有设定那些书签(或直接输入bookmark) bookmark edit #编辑器修改书签 (~/.lftp/bookmarks) open [name] #链接书签
常用实例
get -c a.zip # -c 断点续传 mget *.txt #下载所有远程当前目录的txt文档 mirror --parallel=3 incoming #--parallel 多线程, 下载整个incoming目录 mirror -R local_name #上传本地local_name目录 pget -n 6 a.zip #多线程,默认5线程 lftp -c "pget -n 10 http://www.baidu.com/img/baidu_jgylogo3.gif" #多线程 断点续传 http资源
增量备份
以前的博文中就讲到过的,在拿出来
lftp -u [username],[password] -e "mirror -R --delete --only-newer --verbose 本地目录 远程目录" [ftpsite] # -e 告诉lftp执行连接服务器后接着运行指定命令 # mirror -R 上传目录 # --delete:删除远程备份服务器中存在的文件而本地服务器不存在的文件 #--only-newer :lftp只上传新的文件 #--verbose:监视同步的进程
当如如果要恢复的话
lftp -u username,password -e "mirror --delete --only-newer --verbose 远程目录 本地目录" ftpsite
参考资料:http://hi.baidu.com/heqk/blog/item/560aac51766adc948d5430a4.html
声明: 本文由Ezencart原创,转载请保留链接:linux lftp命令详解
评论 共0条 (RSS 2.0) 发表评论