lftp
一个集成了ftp, http, sftp, fish, torrent传输协议的文件传输工具。
安装ftp服务
安装:yum install vsftpd
启动:service vsftpd start
使用FTP服务,需要搭建ftp服务器
lftp的使用
lftp sftp://root@9.41.147.0 使用sftp协议连接
set -a 列出lftp的所有配置
set xfer:clobber (yes) 开启,覆盖本地目录下的同名文件
(no) 关闭,提示文件在当前目录已存在,不予覆盖
set xfer:make-backup (yes) 开启,如果当前目录下有同名文件,则先把此文件备份为file.~ ,接着做get动作
(此选项对put,mirror,mirror -R均无效)
(no) 关闭,不备份同名文件
mirror 同步本地目录成对端目录,仅在双端目录文件“内容”有差异时,才会做动作
mirror -R 同步对端目录成本地目录,仅在双端目录文件“内容”有差异时,才会做动作
需要知道的几个异常点
传输过程中,发生如下情况会怎样:
1)文件还没写完,就开始get了:
会获取执行get那个时间点时的文件(比如文件一共100M,写到20M的时候get,这个时候只能get到20M),但文件结构是OK的
2)正在传输时,传输动作被终止了:
传输动作立刻停止,文件结构是OK的
3)get或者put时,源文件被删除了:
传输依旧执行下去,目的端可获得完整的文件
(文件的删除只是删除了文件描述符结构,由于get和put会打开文件,所以文件打开计数器不为零,所以inode结构不会被释放
,所以不影响get和put使用文件,可以从文件系统的原理角度理解)
4)get或者put时,落地文件被删除了:
传输依旧执行下去,落地文件无法形成
(落地文件在构架的过程中被删除,意味着文件结构的丢失,因此无法在本地构建一个完整的文件,所以文件无法落地,但是
,传输动作还是会执行完,是不是应该提示会好点?)
对set xfer:make-backup的几点说明
本配置只对get命令有效,put 、mirror 和mirror -R均不会产生file.~文件
put : 不感知对端是否有重名文件,直接甩过去,覆盖之。
mirror: 不会产生file.~文件,采取直接覆盖的方式。
mirror -R: 不会产生file.~文件,采取直接覆盖的方式。