rsync定时同步和rsync+sersync实时同步

主服务器:192.168.1.170

备份服务器:192.168.1.175

备份服务器上配置

1、安装rsync    yum -y install rsync

2、配置/etc/rsyncd.conf

[root@localhost html]# cat /etc/rsyncd.conf

uid = root    #设置rsync运行用户权限为root
gid = root
use chroot = no    #不显示rsync服务端资源列表
max connections = 3600   #最大连接数
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file=/var/run/rsyncd.lock

[web]    #自定义模块名
uid = root    
gid = root
path=/root/html         #存放备份文件目录
comment = web       #注释
ignore errors = yes   #忽略错误
read only = no
hosts allow = 192.168.1.170      #只允许该ip进行同步
auth users=root     #同步的用户名
secrets file=/etc/rsync.pass         #密码文件
timeout=600
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

注意:后面的注释去掉,不然会认证通不过

3、创建密码文件并设置权限

echo "root:123456" > /etc/rsync.pass

chmod 600 /etc/rsync.pass

4、 创建备份文件存放目录

mkdir -p /root/html

5、启动rsync

/usr/bin/rsync --daemon

6、可以设置rsync开机启动

设置定时同步

主服务器上安装rsync,设置密码文件

echo "123456" > /etc/rsync.pass     #该密码与备份服务器里一致

注意:主服务器上密码文件不包含用户名,只有密码

chmod 600 /etc/rsync.pass

进行同步

执行命令rsync -artuz -R --delete ./ 192.168.1.175::web --password-file=/etc/rsync.pass进行同步

将命令写入脚本加到crontab中即可进行定时同步

设置实时同步

主服务器上安装sersync

git clone https://github.com/wsgzao/sersync.git

下载后解压sersync2.5.4_64bit_binary_stable_final.tar.gz

mkdir -p /usr/local/sersync/bin

mkdir -p /usr/local/sersync/conf

将解压出来的sersync2和confxml.xml文件分别复制到上面bin和conf目录

编辑conf文件vi /usr/local/sersync/conf/confxml.xml,修改标记内容

第一行为设置要进行同步的目录,第二行设置备份服务器ip和备份服务器上rsync设置的模块名,第三行表示设置认证信息

执行/usr/local/sersync/bin/sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml进行实时同步

测试:在主服务器/var/www/html/下创建一个文件,在备服务器/root/html目录是否同步

Inotify-tools与sersync区别

Inotify-tools只能对目录变化进行判断,只要有变化整个目录去同步

sersync可以对文件进行判断,只同步变化的文件

所以同步文件大时(百G及以上)建议用sersync

原文地址:https://www.cnblogs.com/tiantianhappy/p/11989019.html