rsync+sersync部署流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync+sersync部署流程相关的知识,希望对你有一定的参考价值。

Sersync简介

sersync是国人周洋基于Inotify开发的,类似于Inotify-tools的工具。

Sersync项目利用inotify与rsync技术实现对服务器数据实时同步的解决方案,其中inotify用于监控sersync所在服务器上文件系统的事件变化,rsync是目前广泛使用的本地及异地数据同步工具,其优点是只对变化的目录数据操作,甚至是一个文件不同的部分进行同步,所有其优势大大超过使用挂载文件系统或scp等方式进行镜像同步。


Sersync的优点:

1、使用c++编写,对linux系统文件产生的临时文件和重复的文件操作会进行过滤,在结全rsyn同步的时候,会减少运行时消耗的本地及网络资源,因此速度更快。

2、使用多线程进行同步。

3、Sersync自带crontab功能。

4、Sersync自带socket与http的协议扩展,可以满足二次开发。

5、配置简单,源代码:http://code.google.com/p/sersync/downloads/list处下载。


Rsync+Inotify-tools与Rsync+sersync的区别:


1、Rsync+Inotify-tools

(1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;

(2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此,效率很低。


2、Rsync+sersync

(1):sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;

(2):rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。


小结:当同步的目录数据量不大时,建议使用Rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。


Sersync安装配置:


安装环境:

主机名
操作系统版本IP
角色
nfs01CentOS release 6.8 (Final)172.16.1.31/24Sersync服务端
backupCentOS release 6.8 (Final)172.16.1.41/24Sersync客户端


部署rsync:

[[email protected] ~]# yum install rsync -y
[[email protected] ~]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
[[email protected] ~]# useradd -s /sbin/nologin -M rsync
[[email protected] ~]# vim /etc/rsyncd.conf 
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
path = /backup/
ignore errors
read only = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup/
[nfsbackup]
path = /nfsbackup
#rsync_config_____end
[[email protected] ~]# mkdir -p /backup
[[email protected] ~]# chown -R rsync.rsync /backup/
[[email protected] ~]# ls -ld /backup/
drwxr-xr-x 5 rsync rsync 4096 Apr  4 13:23 /backup/
[[email protected] ~]# echo "rsync_backup:123456" >/etc/rsync.password
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# cat /etc/rsync.password
rsync_backup:123456
[[email protected] ~]# rsync --daemon
[[email protected] ~]# lsof -i:873
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   1320 root    3u  IPv4  10988      0t0  TCP *:rsync (LISTEN)
rsync   1320 root    5u  IPv6  10989      0t0  TCP *:rsync (LISTEN)

服务端部署:


[[email protected] ~]# echo "123456" >/etc/rsync.password
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# ls -l /etc/rsync.password
-rw------- 1 root root 7 Apr  4 14:09 /etc/rsync.password
#服务端创建同步目录并推送测试
[[email protected] conf]# mkdir -p /data/nfs-blog
[[email protected] conf]# cd /data/nfs-blog
[[email protected] nfs-blog]# ls
[[email protected] nfs-blog]# touch lisa.txt
[[email protected] nfs-blog]# rsync -avz /data/nfs-blog/lisa.txt [email protected]::backup --password-file=/etc/rsync.password 
sending incremental file list
lisa.txt

sent 65 bytes  received 27 bytes  184.00 bytes/sec
total size is 0  speedup is 0.00

sent 65 bytes  received 27 bytes  184.00 bytes/sec
total size is 0  speedup is 0.00
#客户端查看同步过来的文件
[[email protected] ~]# ll /backup/
total 0
-rw-r--r-- 1 rsync rsync 0 Apr  4 13:35 lisa.txt
至此,rsync部署完毕,下面部署sersync

部署Sersync:

[[email protected] ~]# mkdir -p /application/tools
[[email protected] ~]# cd /application/tools
#下载软件并解压
[[email protected] tools]# wget 
[[email protected] tools]# ls
sersync2.5.4_64bit_binary_stable_final.tar.gz 
[[email protected] tools]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /application/
[[email protected] tools]# cd /application/
[[email protected] application]# ls
GNU-Linux-x86  tools
[[email protected] application]# mv GNU-Linux-x86/ sersync   #把解压后的目录重命名为sersync
[[email protected] application]# ls
sersync  tools
[[email protected] application]# cd sersync/
[[email protected] sersync]# ls
confxml.xml  sersync2
[[email protected] sersync]# mkdir conf bin log             #分别建立配置文件目录
[[email protected] sersync]# mv confxml.xml conf            #把主配置文件放到conf下
[[email protected] sersync]# mv sersync2 bin/sersync        #把启动文件放到bin目录下并改名
[[email protected] sersync]# cd bin/
[[email protected] bin]# ls
sersync
#修改配置文件
[[email protected] bin]# cd ../conf/
[[email protected] conf]# cp confxml.xml{,.ori}             #先备份一份
[[email protected] conf]# ls
confxml.xml  confxml.xml.ori
[[email protected] conf]# cp confxml.xml web_conxml.xml     #给配置文件改名
[[email protected] conf]# vim web_conxml.xml                #修改配置文件
....................
24行:<localpath watch="/data/nfs-blog">             #本地同步目录
25行:<remote ip="172.16.1.41" name="nfsbackup"/>     #客户端同步目录
....................
31行:<auth start="true" users="rsync_backup" passwordfil  #指定rsync的用户和密码文件
    e="/etc/rsync.password"/> 
...............................
36行:<failLog path="/application/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->   #配置错误日志文件
                                        
[[email protected] ~]# mkdir /nfsbackup                          #修改完成后记得在客户端创建同步目录
[[email protected] ~]# chown -R rsync.rsync /nfsbackup/
[[email protected] conf]# echo "export PATH=$PATH:/application/sersync/bin" >>/etc/profile  #把sersync的执行脚本加入到PATH
[[email protected] conf]# source /etc/profile                         #让配置生效
[[email protected] conf]# sersync -r -d -o /application/sersync/conf/web_conxml.xml     #启动sersync

启动参数说明: -o:指定配置文件   -d:在后台启动  -r:主服务器和同步服务器先做同步初始保持一致

[[email protected] ~]# ps -ef|grep sersync                     #查看进程
root       1403      1  0 14:59 ?        00:00:00 sersync -r -d -o /application/sersync/conf/web_conxml.xml
root       1419   1249  0 14:59 pts/0    00:00:00 grep sersync

启动完成后测试:

#服务端创建文件
[email protected] nfs-blog]# cd /data/nfs-blog/
[[email protected] nfs-blog]# touch lisa.txt
[[email protected] nfs-blog]# ls
lisa.txt
#客户端查看
[[email protected] ~]# ll /nfsbackup/
total 0
-rw-r--r-- 1 rsync rsync 0 Apr  4 15:18 lisa.txt





本文出自 “12206254” 博客,转载请与作者联系!

以上是关于rsync+sersync部署流程的主要内容,如果未能解决你的问题,请参考以下文章

sersync+rsync原理及部署

[sersync+rsync] 文件同步部署实战

sersync部署

[sersync+rsync] centos6.5 远程文件同步部署记录

sersync 配合rsync实时同步备份

自动化部署安装nfs+rsync+sersync+nfs客户端+SMTP