设为首页 收藏本站
查看: 2150|回复: 0

[经验分享] CentOS 7 rsync

[复制链接]

尚未签到

发表于 2017-6-1 11:51:42 | 显示全部楼层 |阅读模式
  CentOS 7 rsync
  
1)软件简介
  Rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。Rsync 本来是用以取代rcp 的一个工具,它当前由 Rsync.samba.org 维护。Rsync 使用所谓的“Rsync 演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行 Rsync server 的机器也叫 backup server,一个 Rsync server 可同时备份多个 client 的数据;也可以多个Rsync server 备份一个 client 的数据。
  Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。Rsync server 会打开一个873的服务通道(port),等待对方 Rsync 连接。连接时,Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
  Rsync 支持大多数的类 Unix 系统,无论是 Linux、Solaris 还是 BSD 上都经过了良好的测试。此外,它在windows 平台下也有相应的版本,比较知名的有 cwRsync 和 Sync2NAS。
  Rsync 的基本特点如下:
  可以镜像保存整个目录树和文件系统;
可以很容易做到保持原来文件的权限、时间、软硬链接等;
无须特殊权限即可安装;
优化的流程,文件传输效率高;
可以使用 rcp、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接;
支持匿名传输。
  
2)核心算法
  假定在名为 α 和 β 的两台计算机之间同步相似的文件 A 与 B,其中 α 对文件A拥有访问权,β 对文件 B 拥有访问权。并且假定主机 α 与 β 之间的网络带宽很小。那么 Rsync 算法将通过下面的五个步骤来完成:
  β 将文件 B 分割成一组不重叠的固定大小为 S 字节的数据块。最后一块可能会比 S 小。
β 对每一个分割好的数据块执行两种校验:一种是32位的滚动弱校验,另一种是128位的 MD4 强校验。
β 将这些校验结果发给 α。
α 通过搜索文件 A 的所有大小为 S 的数据块(偏移量可以任选,不一定非要是 S 的倍数),来寻找与文件B 的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。
α 发给 β 一串指令来生成文件 A 在 β 上的备份。这里的每一条指令要么是对文件 B 经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件 B 的任何一个数据块匹配上的。
  
3配置管理
  1 关闭selinux
  临时关闭 setenforce 0
  永久关闭 $vi /etc/sysconfig/selinux
         SELINUX=disabled
  
2 安装rsync 系统自带
  开机启动 systemctl enable rsyncd
  
3 配置服务端
$ vi /etc/rsyncd.conf



# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
uid = root
gid = root
use chroot = no
max connections = 2
strict modes = yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[hadoop]
path = /opt/hadoop/etc/hadoop/ # 数据存放位置
comment = HADOOP
read only = yes
list = no
auth users = hadoop # 与系统用户无关
secrets file = /etc/rsyncd.secret
#hosts allow = 192.168.6.1 #设置允许访问的客户端多个客户端用空格隔开
#hosts deny = * #设置不允许访问的黑名单
[zookeeper] #这里相当于一个区分符,如果要同步多个文件夹就在这里区分
path = /opt/zookeeper/conf # 数据存放位置
comment = ZOOKEEPER
auth users = hadoop
secrets file = /etc/rsyncd.secrets #存放rsync密码的文件
read only = no
list = no
  
  配置rsync密码(在上边的配置文件中已经写好路径)/etc/rsyncd.secrets(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
$ vi /etc/rsyncd.secrets



hadoop:hadoop # 用户:密码
hadoop1:hadoop1
  配置rsync密码文件权限
  chown root.root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
  4 启动 验证
  $ systemctl start rsyncd
  $ netstat -apn | grep rsync
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      2688/rsync         
tcp6       0      0 :::873                  :::*                    LISTEN      2688/rsync
  5 客户端配置
  1 配置三个过程就可以了
  1.1 设定密码文件
  1.2 测试rsync执行指令
  1.3 将rsync指令放入周期任务(crontab)

  设定密码文件
$ vi  /etc/rsyncd.secrets
hadoop  #这里只需要写密码
  $ chown root:root /etc/rsyncd.secrets   # 注意必须给权限
$ chmod 600  /etc/rsyncd.secrets          # 必须修改权限
  测试rsync执行指令
  上传 rsync -avz --password-file=/etc/rsyncd.secrets /opt/hadoop/etc/hadoo hadoop@namenode::hadoop
下载 rsync -avz --progress --delete --password-file=/etc/rsyncd.secrets hadoop@namenode::hadoop /opt/hadoop/etc/hadoop
  rsync的参数的说明:
-a 相当于 -rlptgoD 的集合
-u 等同于 –update,在目标文件比源文件新的情况下不更新
-v 显示同步的文件
–progress 显示文件同步时的百分比进度、传输速率
  --delete 如果源目标系统中不存在 , 同步系统中的文件将被删除
  将rsync指令放入周期任务(crontab)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-382093-1-1.html 上篇帖子: CentOS使用EPEL YUM源 下篇帖子: [CentOS]添加删除用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表