前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用Rysnc实现数据同步?

如何用Rysnc实现数据同步?

作者头像
吴柯
发布2018-04-18 10:30:28
1.5K0
发布2018-04-18 10:30:28
举报

Rsync(remote sync)

是UNIX及类UNIX平台一款数据镜像备份软件,它不像FTP等其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效率。 • 文件同步与复制的差异 – 复制:完全拷贝源到目标 – 同步:增量拷贝,只传输变化过的数据

rsync同步操作

命令用法 – rsync [选项...] 源目录 目标目录

• rsync操作选项 – -n:测试同步过程,不做实际修改 – --delete:删除目标文件夹内多余的文档 – -a:归档模式,相当于-rlptgoD – -v:显示详细操作信息 – -z:传输过程中启用压缩/解压

[root@svr7 ~]# yum -y install rsync

[root@svr7 ~]# mkdir /dir1 [root@svr7 ~]# mkdir /test1

[root@svr7 ~]# cp -r /boot/* /dir1 [root@svr7 ~]# rsync -avz --delete /dir1/ /test1/ [root@svr7 ~]# cp /etc/passwd /dir1 [root@svr7 ~]# rsync -avz --delete /dir1/ /test1/ [root@svr7 ~]# cp /etc/shadow /test1 [root@svr7 ~]# rsync -avz --delete /dir1/ /test1/

rsync+SSH远程同步 用法及服务端要求 • 列出 SSH 服务端资源 – rsync user@host :远程 目录/ • 与远程的 SSH目录保持同步 – 下行:rsync [...] user@host:远程目录 本地目录 – 上行:rsync [...] 本地目录 user@host:远程目录 虚拟机A: # rsync -avz --delete /opt/ root@192.168.5.5:/opt/ # cp /etc/fstab /opt/test01.txt # rsync -avz --delete /opt/ root@192.168.5.15:/opt/ 虚拟机B: # ls /opt

✎Rsync+Inotify自动同步(实时同步)

由于使用Rsync仅能满足对数据实时性不高的环境,为了实现多台主机之间的实时同步,就需要结合Inotify(inode notify)工具。

栗子:实现镜像Web(使web服务器所提供的网站数据保持一致)

1.虚拟机A:搭建Web服务器,并在/var/www/html/写入index.html 虚拟机B:搭建Web服务器,并在/var/www/html/写入index.html

2.实时同步:虚拟机A的/var/www/html/与虚拟机B的/var/www/html/ 方案:

1.实现源码包安装,在真机上,上传inotify-tools-3.13.tar.gz # scp /var/ftp/share/inotify-tools-3.13.tar.gz root@192.168.5.5:/root/

2.安装gcc、make [root@svr7 ~]# yum -y install gcc make [root@svr7 ~]# rpm -q gcc [root@svr7 ~]# rpm -q make 3:tar解包,释放源代码至指定目录 # tar -xf /root/inotify-tools-3.13.tar.gz -C /opt # ls /opt/ 4: ./configure 配置 指定安装目录/功能模块等选项,检测系统是否安装gcc [root@svr7 ~]# cd /opt/inotify-tools-3.13 [root@svr7 inotify-tools-3.13]# ./configure 5: make 编译,生成可执行的二进制程序文件

6: make install 安装,将编译好的文件复制到安装目录 [root@svr7 /]# umount /var/www/html/rhel7/ [root@svr7 /]# ls /var/www/html/rhel7/

Inotifywait

基本用法 – inotifywait [选项] 目标文件夹 • 常用命令选项 – -m,持续监控(捕获一个事件后不退出) – -r,递归监控、包括子目录及文件 – -q,减少屏幕输出信息 – -e,指定监视的 modify、move、create、delete、 attrib 等事件类别

while [条件测试] do 执行命令 done

----<利用while循环反复检查单次监控结果>

7.在虚拟机A上生成公私钥 [root@svr7 /]# ssh-keygen [root@svr7 /]# ssh-copy-id root@192.168.5.15 8.书写同步脚本 [root@svr7 /]# vim /opt/rsync.sh #!/bin/bash while inotifywait -rqq /var/www/html/ do rsync -az --delete /var/www/html/ root@192.168.5.15:/var/www/html done [root@svr7 /]# chmod +x /opt/rsync.sh [root@svr7 /]# /opt/rsync.sh

这样便实现了客户主机将数据推送到Rsync服务器,实现数据的实时同步功能。这样修改了192.168.5.5主机上的数据,就可以将数据推送至web服务器,192.168.5.15主机的数据会相应的发生改变。

推荐阅读:

【基础必备】RAID阵列分类和进程管理常用指令

容易忘的Linux基础小工具(附vim编辑技巧)

<简述>Linux配置web服务器

Linux系统磁盘分区及创建逻辑分区与扩展入门教程

【技术帖】LDAP网络用户的实现

Linux文件权限的更改:理解第一,命令次之

【Linux环境下】绝对要掌握的创建/查看指令

【Linux】不得不了解的软件包管理与安装指令

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吴柯的运维笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档