主服务器: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