【Linux】Linux下同步数据scp与rsync

在开发中,经常会遇到想在两个机器之间进行同步内容,现在linux中提供两个命令,基于ssh协议的scp和rsync、rsync可以通过remote shell也可以使用自身守护进程直接通过TCP。当使用TCP的时候,rsync在机器之间数据同步不用输入对端机器的密码;当你使用SSH协议作为底层协议,那么在同步数据的时候就必须输入密码才可以完成数据的同步。scp与rsync两个命令不仅仅是可以使用在机器之间同步数据,在一个机器内部也是可以进行数据的同步。但是对于scp来说,除了在机器之间和一个机器目录之间进行数据同步之外,还可以在两台不同机器之间进行数据同步。比如你在A机器,可以对B、C两台机器上的数据进行同步,但是rsync就不可以;也就是说当rsync进行跨机器同步数据的时候只可以在本机与另外一台机器之间进行数据的同步。

scp

scp命令就是拷贝,不过是在cp命令前多加了一个s,即security cp。从这可以看出它是一个安全的、加密过了的拷贝,因此它是可以使用在机器之间进行数据的拷贝。相对于scp命令,linux还提供了像rcp(remote cp)的数据拷贝命令,也是使用在机器之间的数据拷贝。因为scp命令参数比较少,比较容易掌握,在这里就不详细说明。

rsync

原理

rsync是为了在两个机器之间进行数据的同步,既然有了scp为何还要有这个协议那。该协议主要目的是在两台机器之间进行数据同步的时候,尽量少的传递数据。rsync可以聪明的在两台机器之间进行数据的同步,并通过合适的差分编码减少数据的传输。rsync的作用就是当要同步数据的对端已经存在部分要同步数据的情况下,通过使用rsync可以只传递对端没有的数据。假设一个文件100G,在文件末尾只加了一个句号。这时候要同步数据,如果使用scp那么要拷贝传输100G数据过去,而rsync只传输修改后的数据,也就是说只传递一个句号,整个任务就结束了。

rsync采用的是rolling check算法。当启动rsync数据同步的时候,对端会把数据做一个签名发送过来,然后接下来就进行数据的比对。

使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值