linux rsync实时同步

rsync同步

同步与复制的差异:
复制:完全拷贝源到目标
同步:增量拷贝,只传输变化过的数据

同步操作:
remote sync 远程同步
支持本地复制,或与其他ssh,rsync主机同步。
官方网站:http://rsync.samba.org/

命令用法
rsync [选项] 源目录 目标目录
常用选项:
-a:归档模式,相当于-rlptgiD
-v:显示同步过程详细信息
-z:传输过程中启用压缩
-r:递归,包括目录/子目录及所有文件
-l:保留符号链接文件
-p,-t:保留文件的权限,时间标记
-o,-g:保留文件的属主/属组标记
-D:保留设备文件及其他特殊文件
-H:保留硬链接文件
-A:保留文件的ACL属性信息
-n:测试同步过程,不做实际修改
--delete:删除目标文件夹内多余的文档(确保源和目标完全一致)

本地同步
rsync [选项] 本地目录1 本地目录2
rsync [选项] 本地目录1/ 本地目录2

[[email protected] ~]# rsunc -a /boot /xxx(同步整个文件夹)
[[email protected] ~]# rsunc -a /boot/ /xxx/(只同步目录下数据)

服务端要求:服务端应开启sshd服务,并提供授权的用户,密码,此目录对远程目录必须有相应的权限
rsync+ssh远程同步
下行同步:rsync [选项] [email protected]远程目录/ 本地目录
上行同步:rsync [选项] 本地目录/ [email protected]远程目录

下行同步实例:
[[email protected] ~]# rsync [email protected]:/boot/(浏览远程目录)
[[email protected] ~]# rsync -av [email protected]:/boot/ /xxx/(将远程主机/boot/目录备份到本地)
[[email protected] ~]# ls /xxx/(查看结果)
上行同步实例:
[[email protected] etc]# rsync -av /etc [email protected]:/opt/(将本地的/etc/目录备份到远程主机)
[[email protected] opt]# ls(远程机查看结果)
rh

————————————————————————————————————————————
rsync+rsync远程同步

同步资源配置文件/etc/rsyncd.conf
[[email protected] ~]# chkconfig rsync on(开启)
[[email protected] ~]# service xinetd restart(重启服务)

创建rsyncd.conf共享配置(若是匿名共享。可去掉auth users设置)
[[email protected] ~]# vim /etc/rsyncd.conf
[hydra] (共享文件名)
path = /usr/src(共享文件目录)
comment = Rsunc Share Test
read only = yes
dont compress = *.gz *.bz2 *.tgz *.zip
auth users = ruser (许可的用户)
secrets file = /etc/rsyncd_users.db(用户账户密码的存放路径)
[[email protected] ~]# vim /etc/rsyncd_users.db(创建用户,密码存放文件)
ruser:123456(用户:密码)
root:Taren1
hydra:Anonymous
[[email protected] ~]# chmod 600 /etc/rsyncd_users.db(更改存放用户,密码文件权限)

查看共享资源:rsync [email protected]::

下行同步:rsync [选项] [email protected]共享名/ 本地目录
上行同步:rsync [选项] 本地目录/ [email protected]共享名

下行同步实例:
[[email protected] ~]# rsync -av [email protected]::hydra/ /myhydra
[[email protected] ~]# ls /myhydra/(查看文件)
debug kernels
上行同步实例:
[[email protected] ~]# rsync -av /opt [email protected]::hydra
[[email protected] ~]# ls /usr/src/(查看文件)
debug kernels

——————————————————————————————————————————

关于同步的实时性
依赖于两个组件:
监控源文档的变化(inotify)
调用同步操作的命令行(rsync)语句
关于inotify机制:
linux内核2.6.13以上版本默认支持
需要额外安装控制工具,比如inotify-tools

inotify实时同步(inotifywait监控目录程序)
inotify-tools-3.13.tar.gz
源码包编译安装:
解包:[[email protected] ~]# tar xf /root/inotify-tools-3.13.tar.gz -C /usr/src/
配置:[[email protected] ~]# cd /usr/src/
[[email protected] inotify-tools-3.13]# ./configure
编译:[[email protected] inotify-tools-3.13]# make
安装:[[email protected] inotify-tools-3.13]# make install
[[email protected] ~]# inotifywait
No files specified to watch!

inotifywait监控
基本用法
inotifywait [选项] 目标文件夹
常用命令选项
-m,--monitor:启用监控
-r,--recursive:递归,涵盖所有子目录
-q,--quiet:减少输出信息
-e,--event:限定要监控的事件类型

实例:
监控/opt文件夹
事件类型:modify,move,create,delete,attrib
[[email protected] ~]# inotifywait -mrq -e modify,move,create,delete,attrib /opt
[[email protected] ~]# [[email protected] ~]# vim /root/irsync.sh(写个脚本,放后台执行)
#!/bin/bash
DIR1="/opt"(DIR1是个变量,后期好更改)
RCMD="rsync -az --delete $DIR1 /opt2/"(RCMD变量)
inotifywait -mrq -e create,delete,move,attrib,modify $DIR1 | while read x y z
do
$RCMD(这个变量相当于执行rsync -az --delete /opt /opt2/)
done &

实例:
网站实时镜像
实现主机svr —》主机pc的网站实时镜像
双方的目录均为/var/www/html/
以svr为同步发起方,配置inotfy+rsync同步
以pc为同步目标,基于ssh验证(如果不想输密码,可以给对方公钥)
rsync -az --delete /var/www/html/ [email protected]:/var/www/html/
[[email protected] ~]# vim /root/irsync.sh (要实时同步就修改脚本文件)
#!/bin/bash
DIR1="/var/www/html/"
RCMD="rsync -az --delete $DIR1 [email protected]:$DIR1
"
inotifywait -mrq -e create,delete,move,attrib,modify $DIR1 | while read x y z
do
$RCMD
done &

————————————————————————————————————————————

时间: 2024-10-02 11:14:53

linux rsync实时同步的相关文章

linux下实现多台服务器同步文件(inotify-tools+rsync实时同步文件安装和配置)

inotify-tools+rsync实时同步文件安装和配置 注:转载https://www.linuxidc.com/Linux/2012-06/63624.htm 原文地址:https://www.cnblogs.com/ccw869476711/p/9007156.html

sersync+rsync实时同步配置案例

目前业内比较靠谱的同步解决方案有: rsync+inotify-tools,Openduckbill+inotify-tools和rsync+sersync 前两者由于是基于脚本语言编写,所以规范程度,执行效率相对rsync+sersync就稍微弱一些. sersync是使用c++编写,基于boost1.43.0,inotify api,rsync command开发,主要用于服务器同步,web镜像等功能.其对linux系统文件系统产生的临时文件和重复的文件操作能够进行过滤,所以在结合rsync

inotify +rsync 实时同步

1.1 inotify简介 inotify是一种强大的,细粒度的,异步的文件系统时间监控机制,Linux内核从2.6.13加入了inotify支持,通过inotify可以监控文件系统汇中添加,删除,修改,移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools正式实施这样的监控的软件,国人周洋在金山公司开发了类似的实时同步软件sersync. 1.1.1 安装inotify 在安装inotify-tools前请先确认你的Linux内核是否达

inotify-tools+rsync实时同步文件安装和配置

服务器A:论坛的主服务器,运行DZ X2论坛程序;服务器B:论坛从服务器,需要把X2的图片附件和MySQL数据实时从A主服务器实时同步到B服务器.MySQL同步设置会在下一编中说到.以下是用于实时同步两台服务器的图片. 因为一般的RSYNC需要CRON来定期运行SH脚本来实现同步,这样会带来一些问题.比如用户从主服务器上传上一个图片,需要最少一分钟才能从从服务器显示出来.自从Linux 2.6内核后,支持了inotify机制,当某些文件或文件夹有改变时,发出相应的事件,这样,第三方程序只要订阅这

sersync 配合rsync实时同步备份

sersync 配合rsync实时同步备份 sersync是基于Inotify开发的,类似于Inotify-tools的工具,基本上Inotify能实现的功能,sersync也具备,因此,sersync 也可以实时监听目录中发生变化的(包括增加.删除.修改) sersync 配合rsync实时同步备份 1. sersync 介绍 2. 部署rsync daemon 3. 安装sersync sersync 配合rsync实时同步备份 1. sersync 介绍 sersync是基于Inotify

配置inotify+rsync实时同步

对rsync服务及命令不熟悉的,可以参考博文通过rsync实现远程同步这里就不多说了! Linux内核从2.6.13版本开始就已经提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动.修改等.利用这一机制,可以非常方便的实现文件异动告警.增量备份,并针对目录或文件的变化及时作出响应. 将inotify机制与rsync工具相结合,可以实现出发时备份(实时同步)--只要原始位置的文档发生变化,则立即启动增量备份,否则处于静默等待状态,如图所示:这样,就避免了按固定周期

Inotify+rsync实时同步工具实战

Inotify+rsync实时同步工具实战 分别有机器:server-178/24,client-b-179/24,client-c-180/24 中心分发服务器Master:client-c-180/24 备份服务器    :client-b-179/24和server-178/24 基于备份服务器已经提供rsync --daemon的基础上,在中心分发服务器(rsync客户端)配置inotify,监控的目录设置为/www/ 1.查看当前系统是否支持inotify ls -l /proc/sy

rsync 实时同步

rsync 默认安装的 远端 192.168.1.123 本地 192.168.1.124 rsync + ssh 在本地主机执行 rsync -az [email protected]:/root /bak  #目录 rsync -az [email protected]:/root/ /bak #目录里面的内容 或者 在远端主机 rsync -az /root [email protected]:/bak rsync -az /root/ [email protected]:/bak rsy

Sersync+rsync实时同步

Sersync+rsync实时同步服务端设置(相当于备份服务器)1.确认rsync是否安装[[email protected] ~]# rpm -qa|grep rsyn*rsyslog-5.8.10-10.el6_6.x86_64rsync-3.0.6-12.el6.x86_64 2.服务端按转有rsync工具没有可以yum安装yum install rsync -y 3.配置rsync配置文件,原先是没有的需要创建cat >>/etc/rsyncd.conf<<EOFuid =