Linux系统sersync数据实时同步
Linux系统sersync数据实时同步
前面介绍了以守护进程的方式传输或同步数据rsync软件,linux系统数据同步软件很多,今天来介绍下sersync数据同步软件
一:sersync介绍
sersync其实是利用inotify和rsync两种软件技术来实现数据实时同步功能的,inotify是用于监听sersync所在服务器上的文件变化,结合rsync软件来进行数据同步,将数据实时同步给客户端服务器
二:sersync工作过程
在同步主服务器上开启sersync,负责监听文件系统的变化,然后调用rsync命令把更新的文件同步到目标服务器上,主服务器上安装sersync软件,目标服务器上安装rsync服务
三:整体环境拓扑图
四:客户端安装配置rsync服务
[root@Client ~]# cat /etc/rsyncd.conf
cat: /etc/rsyncd.conf: No such file or directory
如果有此文件,配置前要进行备份,再进行相关配置
[root@Client etc]# vi /etc/rsyncd.conf
##rsync config start
##created by root 2016-08-08 15:00
##rsync.conf config start
uid = rsync
gid = rsync
use chroot = no
max connetctions = 200
timeout = 100
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /backup/
ignore errors
read only = false
list = false
hosts allow = 192.168.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
##rsync config end
"rsyncd.conf" [New] 21L, 458C written
添加用户
[root@Client ~]# useradd rsync -s /sbin/nologin -M
改变目录权限
[root@Client ~]# chown -R rsync.rsync /backup
配置密码文件
[root@Client ~]# echo "rsync_backup:rsync.conf">>/etc/rsync.password
[root@Client ~]# cat /etc/rsync.password
rsync_backup:rsync.conf
改变密码文件权限
[root@Client ~]# chmod 600 /etc/rsync.password
[root@Client ~]# ls -ld /etc/rsync.password
-rw-------. 1 root root 24 Sep 9 13:06 /etc/rsync.password
格式化文件
[root@Client ~]# dos2unix /etc/rsyncd.conf
dos2unix: converting file /etc/rsyncd.conf to UNIX format ...
开启服务后台运行
[root@Client ~]# rsync --daemon
[root@Client ~]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0: _LISTEN 2002/rsync
tcp 0 0 :::873 :::_LISTEN 2002/rsync
五:主服务器上配置密码文件
[root@Master ~]# echo "rsync.conf">>/etc/rsync.password
[root@Master ~]# cat /etc/rsync.password
rsync.conf
[root@Master ~]# chmod 600 /etc/rsync.password
[root@Master ~]# ls -ld /etc/rsync.password
-rw-------. 1 root root 11 Sep 8 06:25 /etc/rsync.password
六:测试手工同步
[root@Master /]# rsync -avzP /etc/hosts rsync_backup@192.168.1.3::rsync --password-file=/etc/rsync.password
sending incremental file list
hosts
158 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 120 bytes received 27 bytes 26.73 bytes/sec
total size is 158 speedup is 1.07
[root@Master /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@Client ~]# cat /backup/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
经过对比两边数据一致,表明同步成功,手工同步成功之后,然后再进行后面的配置
七:安装sersync服务
首先下载好安装软件
sersync_64bit_binary_stable_final.tar.gz
[root@Master tools]# tar -zxvf sersync_64bit_binary_stable_final.tar.gz -C
/usr/local/
GNU-Linux-x86/
GNU-Linux-x86/sersync2
GNU-Linux-x86/confxml.xml
[root@Master tools]# cd /usr/local/
[root@Master local]# ls
bin games include lib64 sbin src
etc GNU-Linux-x86 lib libexec share
GNU-Linux-x86就是sersync安装软件,为了方便将它改名
[root@Master local]# mv GNU-Linux-x86 sersync
为了后续方便管理,创建几个目录用于存放各类文件
[root@Master sersync]# mkdir -p conf bin logs
[root@Master sersync]# mv confxml.xml conf
[root@Master sersync]# ls
bin conf logs sersync2
[root@Master sersync]# cd conf
[root@Master conf]# ls
confxml.xml
在配置配置文件之前备份
[root@Master conf]# cp confxml.xml confxml.xml.$(date +%F)
[root@Master conf]# ls
confxml.xml confxml.xml.2016-09-08
修改配置文件内容(confxml.xml)
1、修改24-28行
rsync the directory recursivly to the remote servers once
working please wait...
execute command: cd /opt/backup && rsync -aruz -R --delete ./ --timeout=100 rsync_backup@192.168.1.3::rsync --password-file=/etc/rsync.password >/dev/null 2>&1
run the sersync:
watch path is: /opt/backup
九:测试数据同步
[root@Master sersync]# cd /opt/backup/
[root@Master backup]# ls
[root@Master backup]# ls -ll
total 0
[root@Master backup]# touch 123
[root@Master backup]# touch 1234
[root@Master backup]# touch 1235
[root@Master backup]# touch 12333
[root@Master backup]# ls -ll
total 0
-rw-r--r--. 1 root root 0 Sep 8 09:26 123
-rw-r--r--. 1 root root 0 Sep 8 09:26 12333
-rw-r--r--. 1 root root 0 Sep 8 09:26 1234
-rw-r--r--. 1 root root 0 Sep 8 09:26 1235
目标服务器查看同步情况
[root@Client backup]# ls -ll
total 0
-rw-r--r--. 1 rsync rsync 0 Sep 8 04:26 123
-rw-r--r--. 1 rsync rsync 0 Sep 8 04:26 12333
-rw-r--r--. 1 rsync rsync 0 Sep 8 04:26 1234
-rw-r--r--. 1 rsync rsync 0 Sep 8 04:26 1235
测试结果表明数据同步正常,能够实时同步
长按关注公众号——友侃有笑