Linux 文件传输方式比较

一、FTP

       ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输。

ftp(选项)(参数) 

选项
-d:详细显示指令执行过程,便于排错或分析程序执行的情况;
-i:关闭互动模式,不询问任何问题
-g:关闭本地主机文件名称支持特殊字符的扩充特性
-n:不使用自动登录
-v:显示指令执行过程

参数

主机:指定要连接的FTP服务器的主机名或ip地址。在命令行中,主机属于可选项,如果指定主机,ftp 将试图与远程 ftp 服务程序进行连接;如果没有指定主机,ftp 将给出提示符,等待用户输入命令。此时在 ftp> 提示符后面输入 open 子命令加主机名或 IP 地址,将试图连接指定的主机。如果连接成功,需要在远程机上登录。在远程站点上登录成功后,在“ ftp> ”提示符下可以自由使用 ftp 提供的各种子命令,最常用的子命令如下所示。

ls列出远程机的当前目录
cd在远程机上改变工作目录
lcd在本地机上改变工作目录
ascii设置文件传输方式为 ASCII 模式
binary设置文件传输方式为二进制模式
close终止当前的 ftp 会话
get (mget)从远程机传送指定文件到本地机
put (mput)从本地机传送指定文件到远程机
open连接远程 ftp 站点
quit断开与远程机的连接并退出 ftp
?显示本地帮助信息
!转到 Shell 中
prompt 1关闭交互模式

脚本编写

       使用 ftp 命令的 -in 选项,并重定向 ftp 命令的输入。现在我们来编写一个利用 ftp 登录到远程服务器,并以 bin 的文件格式,在 /home 目录下,下载 test1.log 以及 test2.sh 至本机 /data/tmp/,并从本地 /data目录上传文件 test3.c 至远程服务器 /home 的自动化脚本。 

ftp -ni <<+ 
     open $IP 
     user $USERNAME $PASSWD 
     bin 
     cd /home 
     lcd /data/tmp/
     mget test1.log test2.sh 
     lcd /data 
     mput test3.c 
     ls 
     bye

       FTP 协议允许数据在不同文件系统的主机之间传输。但是它并没有尝试去保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数),而且 FTP 协议很少对一个文件系统的整体结构作假定,也不提供这样的功能,比如递归的拷贝子目录。

 

二、RCP

       用于计算机之间进行文件拷贝,既可以用于文件到文件的拷贝,也可以用于把文件或目录拷贝到另一个目录中。

rcp(选项)(参数) 

选项
-p:保留源文件或目录的属性,包括拥有者、所属群组、权限与时间
-r:递归处理,将指定目录下的文件与子目录一并处理
-x:加密两台Linux主机间传送的所有信息
-D:指定远程服务器的端口号

        同名用户的主目录。如果没有给出远程用户名,就使用当前用户名。如果远程机上的路径包含特殊shell字符,需要用反斜线\\、双引号""或单引号''括起来,使所有的shell元字符都能被远程地解释。需要说明的是,rcp不提示输入口令,它通过rsh命令来执行拷贝。

参数

源文件:指定要复制的源文件,源文件可以有多个。

配置rcp命令的使用环境

1、在双方root用户根目录下建立rhosts文件,并将双方的hostname加进去。在此之前应在双方的/etc/hosts文件中加入对方的ip和hostname

2、把rsh服务启动起来,redhat默认是不启动的。 方法:用执行ntsysv命令,在rsh选项前用空格键选中,确定退出。然后执行service xinetd restart即可。

rcp text CentOS:/home/newOne

 

三、SCP

       scp 命令在网络上的主机之间拷贝文件,它是安全拷贝(secure copy)的缩写。scp 命令使用 ssh 来传输数据,并使用与 ssh 相同的认证模式,提供同样的安全保障。

scp(选项)(参数) 

选项:
-1:使用ssh协议版本1;
-2:使用ssh协议版本2; 
-4:使用ipv4; 
-6:使用ipv6;
-B:以批处理模式运行; 
-C:使用压缩; 
-F:指定ssh配置文件; 
-l:指定宽带限制;
-o:指定使用的ssh选项; 
-P:指定远程主机的端口号; 
-p:保留文件的最后修改时间,最后访问时间和权限模式; 
-q:不显示复制进度; 
-r:以递归方式复制。

参数:

源文件:指定要复制的源文件。 目标文件1:目标文件2。格式为user@host:filename(文件名为目标文件的名称)

 

四、rsync

       rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。以下是该算法的实现步骤:

  1. 主机 B 将原始拷贝划分成大小为 N 的不重合的若干块(文件末尾部分分块大小可能不足 N),并对这些数据块进行两种不同方式的校验:32 位的滚动弱校验、128 位的 MD4 强校验。弱校验较之强校验计算速度快。
  2. 主机 B 将每个数据块的弱校验、强校验结果发送给主机 A 。
  3. 主机 A 对更新后的文件拷贝中的每个长度为 N 的数据块进行弱校验并与从 B 接收到的弱校验值进行匹配,若相同再进行强校验匹配。由于弱校验的滚动特性可以快速地筛选出需要进行同步的数据块。该算法的运算量主要集中在主机 A 上。
  4. 通过上述计算,主机 A 将文件的不同部分发送给 B,B 接收到两个拷贝之间的不同之处,从而同步得到更新后的文件。

rsync有六种不同的工作模式:

1. 通过远程 shell 方式:

(1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:

# rsync [OPTION]... SRC DEST
rsync -a /data /backup

(2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:

# rsync [OPTION] SRC [USER@]HOST:DEST
rsync -avz *.c foo:src

(3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC路径地址包含单个冒号":"分隔符时启动该模式。如:

# rsync [OPTION] [USER@]HOST:SRC DEST
rsync -avz foo:src *.c 

2. 通过 rsync daemon 方式

(1)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:

# rsync [OPTION] [USER@]HOST::SRC DEST
# 或 rsync [OPTION] rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync -av root@192.168.78.192::www /databack

(2)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:

# rsync [OPTION] SRC [USER@]HOST::DEST
# 或 rsync [OPTION] SRC rsync://[USER@]HOST[:PORT]/DEST
rsync -av /databack root@192.168.78.192::www

如果 rsync 命令中只指定 SRC 参数而不指定 DEST 参数,则意为显示源文件列表而非进行同步拷贝。

常用选项:

选项描述
-a, --archive归档模式,保持所有文件属性,等同于 -rlptgoD
-v, --verbose详细信息输出
-r, --recursive对子目录进行递归处理
-R, --relative使用相对路径信息
-b, --backup创建备份
-z, --compress对备份的文件在传输时进行压缩处理
--delete用于同步目录,从 DEST 中将 SRC 不存在的文件进行删除
--progress显示备份过程

 

转载于:https://my.oschina.net/shou1156226/blog/1581390

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值