1.Rsync服务端

系统:CentOS5.8

IP:192.168.1.161

数据目录:/usr/backup

2.Rsync客户端

系统:CentOS5.8

IP地址:192.168.1.8

存放目录:/home/bak


实现客户端每天早上6:00自动同步服务端数据目录中的数据到客户端的存放目录。(可以两台同时做服务端和客户端,这样可以实现双向同步。)


一、Rsync服务端配置

1.开启防火墙tcp873端口(Rsync默认端口,也可以自己定义一个端口来进行通信。)

vi /etc/sysconfig/iptables #编辑防火墙配置文件

-A INPUT -p tcp -m tcp --dport 873 -j ACCEPT

:wq! #保存退出

/etc/init.d/iptables restart #重启防火墙

2.安装Rsync

yum install rsync xinetd #安装

vi /etc/xinetd.d/rsync #编辑配置文件

disable = no #修改成no

/etc/init.d/xinetd start #启动,xinetd是管理Rsync服务的

3.创建rsyncd.conf配置文件

vi /etc/rsyncd.conf #创建配置文件,添加代码

下面给出我做的配置文件截图:

两台CentOS利用Rsync实现数据同步_备份

这里对这里面的一些参数进行一下解析:

   uid和gid是设置rsync的运行权限,可以设置为root,设置为root就比较方便,也可以自己创建一个rsync用户然后对这个用户授予相应的权限,然后在这里设置。


   read only和write only是设置服务端的文件读、写权限。

   port是设置rsync的端口。

   log file是定义日志文件位置,启动rsync的时候自动产生这个文件。

   pid file是定义rsync的pid文件。


   [prodfile]和[baksql]是模块,定义模块;里面的path就是你服务端要同步的数据目录;comment给模块指定一个描述,和模块相同就可以了。


   auth users是设置执行数据同步的用户名,根据自己的填写。

   secrets file是设置用户认证配置文件,里面保存用户名和密码。

   hosts allow是允许进行数据同步的客户端IP地址、网段,可以设置多个。根据自己的实际情况设置。

   hosts deny是设置禁止数据同步的客户端IP地址、网段,可以设置多个。根据自己的实际情况设置。


   还有更多的参数和设置在这里就不多做介绍了,给出一个大神对rsync的各参数的详细解释给大家作为学习和参考来使用吧:http://pnig0s1992.blog.51cto.com/393390/347331 做好配置之后记得:wq!保存退出。

4.创建用户认证文件

vi /etc/rsync.pass #配置文件

xxxxx:123456 #格式,用户名:密码,可以设置多个,每行一个用户名密码

:wq! #保存,退出

5.设置文件权限

chmod 600 /etc/rsyncd.conf #设置文件所有者读、写权限

chmod 600 /etc/rsync.pass #设置文件所有者读、写权限

6.启动和停止rsync

/etc/init.d/xinetd start

service xinetd stop

service xinetd restart


二、Rsync客户端的安装与配置

   安装方法与Rsync服务端相同,并且开启Rsync的873端口,然后用/etc/init.d/xinetd start来启动Rsync。

   然后可以利用telent来进行测试是否与服务端通信成功,这里不做测试介绍。如果不成功,检查防火墙是否开启端口,或者直接关闭防火墙。一般通信成功后如下图所示:

两台CentOS利用Rsync实现数据同步_数据同步_02这里借用别人的图片,所以IP不一样。根据自己实际情况来进行。

   现在开始进行同步的测试,首先创建一个存放同步过来的数据的目录。

   mkdir /home/bak        #根据自己的情况创建目录位置、名字

   然后输入以下命令进行数据同步:

   rsync -vzrtopg --port=32873 --progress --delete auth users@192.168.1.161::backsql /home/bak

   这里的auth users是服务端配置文件中设置的auth users用户,IP为服务端IP,backsql为服务端配置文件中设置的模块名,/home/bak为客户端刚创建的目录。

   执行后提示输入密码:123456

   密码为之前服务端设置的密码。

   之后后进/home/bak目录查看以下是否有服务端的文件。

   

   接下来是添加计划任务每天定时同步。

   先创建一个密码文件储存密码

   vi /etc/passwd.txt  #配置文件,添加以下内容

   123456 #密码

   :wq! #保存退出

   chmod 600 /etc/passwd.txt #给权限

   cd /etc

   vi rsyncbak.sh #创建脚本

   rsync -vzrtopg --port=32873 --progress --delete auth users@192.168.1.161::backsql /home/bak --password-file=/etc/passwd.txt

   :wq! #保存退出

   chmod +x /etc/rsyncbak.sh

   

   添加计划任务

   修改/etc/crontab

   添加

   00 6 * * * root /etc/baksql.sh


   然后重新启动crond

   /etc/init.d/cron restart

   

   chkconfig cron on #设为开机启动