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 #创建配置文件,添加代码
下面给出我做的配置文件截图:
这里对这里面的一些参数进行一下解析:
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来进行测试是否与服务端通信成功,这里不做测试介绍。如果不成功,检查防火墙是否开启端口,或者直接关闭防火墙。一般通信成功后如下图所示:
这里借用别人的图片,所以IP不一样。根据自己实际情况来进行。
现在开始进行同步的测试,首先创建一个存放同步过来的数据的目录。
mkdir /home/bak #根据自己的情况创建目录位置、名字
然后输入以下命令进行数据同步:
rsync -vzrtopg --port=32873 --progress --delete auth [email protected]::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 [email protected]::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 #设为开机启动