Linux命令行ftp利器lftp

来源:互联网 发布:sybase数据库用的多吗 编辑:程序博客网 时间:2024/06/05 15:35

Linux自带的FTP软件功能略显单薄,不能传送文件夹是其一大软肋,而且不能显示进度

所以搜索到了一款叫做lftp的软件,功能强大,下面简略介绍一下使用方法

1.登录

lftp登录有很多种方式,下面这一种是我最常用的,不过其密码是以明文形式输入的

lftp <ip> -p <port> -u <usr>,<pwd>

如果不想密码以明文形式输入,则最后省略逗号和密码,回车后系统会提示输入密码

下面是常见的登陆方法

#登录到ftp--法1lftp (ftp://)user:password@site:21  #ftp://可以省略,默认21端口可以省略#登录到ftp--法2lftp (ftp://)user@site:port   #这种方式回车后,系统提示输入密码#登录到sftp---法1lftp sftp://user:password@site:22  #如果是默认端口22,可以省略,如果不是就必须填写端口号#登录到sftp---法2lftp sftp://user@password:port

2.常用option

-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的命令,如!datealias  #定义别名bookmark  #设定书签exit  #退出ftp

注:ftp中的bookmark命令,是将配置写到~/.lftp/bookmarks文件中;我们可以直接修改此文件,快速登陆ftp服务器。 


ls第二次读取的是本地缓存,可以用 rels 代替 ls 或者catch off / catch on 来开关catch,catch flush清空本地catch

4.小技巧

中文乱码

set ftp:charset gbk #(或者 gb2312 或 utf-8) 设置ftp端的编码格式  set -a 查看所有可以设置的命令

设置主被动

set ftp:passive-mode 1 ## 1 被动 0主动

查找远端文件

ls *.txt ##查找当前目录下的所有txt文件ls ./123/ ##列出123目录下所有文件find . -name "*.txt"   ##递归查找站点上所有的txt文件find ./xx -name "*.txt" ##查找xx目录下所有的txt文件

多任务处理

ctrl+z ##将当前进行的任务移交后台处理,也可以在命令行末尾加&符号使任务在后台执行wait   ##将后台处理任务调至前台查看jobs   ##查看后台进行的任务列表kill all 或者 job_no ##删除所有任务 或 指定的任务queue start ##开始任务列表queue stop ##停止任务列表##将任务加入任务列表queue get 123.txtqueue put 234.txtqueue 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://www.ezencart.com/pages/743.html

原创粉丝点击