简介rsync是类unix系统下的数据镜像备份工具。本文以Nexue数据备份的实践应用为案例,介绍整个应用过程。作为入门材料,rsync的高级配置和应用不在本文范畴。 官方网站:http://rsync.samba.org/ 功能及特点:(从百度抄的)
使用场景: 1、服务器数据备份 2、集群服务器中数据同步(增量是两点啊)
安装配置rsync是应用模式是标准的C/S模式,原始数据所在的服务器A作为服务器,其他备份和同步的服务器B为客户端。所以分为服务器端配置和客户端配置。方案规划如下: 方案规划
rsync安装rsync的安装,服务器端和客户端完全相同。 # wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz # tar -xzvf rsync-3.0.9.tar.gz # cd cd rsync-3.0.9 # ./configure --prefix=/usr …… # make …… # make install …… 说明:编译安装需要gcc支持,如果没有安装,请先安装。我使用的是centOS6.3,所以就直接:yum install gcc.就OK了。
OK,安装完成。
服务端配置(服务器A)服务器端的需求是通过rsync提供对/data/sonatype-work目录的同步备份服务,同时要求服务器启动自动启动服务。rsync通配置主要通过3个配置文件配置完成。如下: [root@localhost etc]# ll rsyncd.* -rw-r--r-- 1 root root 918 Mar 6 22:44 rsyncd.conf -rw-r--r-- 1 root root 191 Mar 6 22:06 rsyncd.motd -rw------- 1 root root 14 Mar 6 22:04 rsyncd.secrets
下面我们分配配置和说明这些配置文件。 rsyncd.conf别拷贝,直接到下面下载附件的好。
rsyncd.secrets
rsyncd.motd
防火墙如果你开启了操作系统的防火墙,请使用iptables配置873端口可用。我反反正是直接关闭了,简单点。
启动服务手动方式 #/usr/bin/rsync --daemon --config=/etc/rsyncd.conf #--config用于指定rsyncd.conf的位置,如果在/etc下可以不写 xinetd方式 如果没有安装xinet,请先安装,对应本系统(CentOS),我直接 yum install xinet 就OK了 在rsync默认安装完成后,安装程序会自动在建立/etc/xinetd.d/rsync文件,但是默认情况是disable = yes(也就是不可用的),需要修改为disable=no 即可 然后,我们通过xinet启动rsync: # service xinetd start/restart 测试下,可以查看进程,端口监听等,我还是喜欢最笨最原始的方式:telnet,哈哈
# telnet 192.168.30.202 873 Trying 192.168.30.202... Connected to 192.168.30.202 (192.168.30.202). Escape character is '^]'. @RSYNCD: 30.0 +++++++++++++++++++++++++++++++++++++++++++++++++++++ Welcome to Nexus rsync services 2012--2013 create by zhangpu ++++++++++++++++++++++++++++++++++++++++++++++++++++
都看到欢迎界面了,肯定服务起来了。
客户端配置(服务器B)客户端是备份服务器,负责使用rsync命令从服务器备份或同步数据到本地指定目录。这里使用crontab+rsync实现定时自动增量同步的功能。 我决定在/data/rsync下建立一个脚本来实现启动rsync同步的功能,然后再使用crontab来实现定时调度。
[root@localhost rsync]# ll /data/rsync total 8 -rwxr-xr-x 1 root root 177 Mar 6 15:27 rsync_client_nexus.sh -rwx------ 1 root root 9 Mar 6 15:17 rsyncd.secrets
rsync_client_nexus.sh
rsyncd.secrets该文件保存rsync命令中使用的用户名的密码明文,这里就是上面的root用户的密码。同时注意这里和服务器端一样,该文件的权限为宿主可以读写(chmod 600 rsyncd.secrets)
crontab配置 这是配置每天凌晨1点1分进行同步处理。 # crontab -e 1 1 * * * /data/rsync/rsync_client_nexus.sh 1> /dev/null
测试
测试就比较简单了,在服务器A的/data/sonatype-work下建立一个testfile,随便输入些东西,然后在服务器B中手动运行同步脚本rsync_client_nexus.sh,完成后在服务器B中相同目录检查是否有该文件。通过这种方式,你可以再修改文件,删除文件等测试。 (责任编辑:IT) |