怎样使用rsync组件进行服务器数据同步?

rsync远程数据传输
rsync远程数据同步传输

rsync是一款开源、多功能可实现全量及增量的数据备份同步的优秀工具, 操作快速便捷, 适用于多种操作系统之上。本文介绍怎样使用rsync工具进行服务器间的数据同步操作方法。

一、实验环境

主机名
 网卡ip
 默认网关
用途
nfs-server
10.0.0.11
10.0.0.254
rsync服务器端
web-client01
10.0.0.12
10.0.0.254
rsync客服端
web-client02
10.0.0.13
10.0.0.254
rsync客服端

二、实验步骤

1.什么是rsync?
rsync是一款开源的,快速的,多功能的可实现全量及增量的数据备份同步的优秀工具,适用于多种操作系统之上。
2.rsync特性
1)支持拷贝链接文件特殊文件
2)可以排除文件或目录,类似打包命令tar的–exclude功能
3)可实现增量和全量备份数据功能
4)可以通过socket传输文件和数据

3.rsync在企业中的应用 
1)把所有客户服务器数据同步到备份服务器
2)两台服务器之间定时同步数据
3)实现多台服务器数据实时备份机制(rsync+inotify/rsync+sersync)

生产场景集群架构服务器本分方案
1)针对公司重要数据混乱状况和领导提出备份全网数据的方案
2)通过本地打包备份,然后rsync+inotify/rsync+sersync把数据备份到一个固定的存储服务器上,然后在存储服务器上通过脚本检查并发送报警给管理员备份结果。 
3)定期将IDE机房的数据备份到公司内部服务器上,防止机房火灾等不可抗因素。
rsync命令:
    rsync [OPTION…] SRC… [DEST]
        -a:表示归档方式传输文件
        -r:对子目录以递归模式(recursive)
        -v:详细模式输出
        -z:在传输过程中压缩
        -P:保持属性
        –exclude:排除
        –exclede-from:从什么什么排除
        –bwlimit:限速 
    rsync -avz /etc/hosts  /tmp —类似拷贝(cp)
    rsync -r –delete /null/ /data/ —类似删除(rm)  

    Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
    Push: rsync [OPTION…] SRC… [USER@]HOST:DEST

    rsync -avzP -e ‘ssh -p 22’ /etc/hosts/ root@10.0.0.12:/tmp   
    rsync -avzP -e ‘ssh -p 22’ chen@10.0.0.13:/data/ /tmp/chen 
    

4.守护进程(socket)的方式传输数据
1.1 服务端配置如下:
1)检查是否安装rsync,没有可使用yum来安装 
rpm -qa rsync  
yum -y install rsync   
2)配置rsync配置文件 
#Rsync server
#created by chen 2016.6.9 
##rsyncd.conf start##
uid = rsync 
gid = rsync
use chroot = no
max connections = 2000
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#####################################
[backup]
comment = backup by chen
path = /backup
#####################################
3)创建用户和共享目录
useradd rsync -s /sbin/nologin -M 
mkdir /backup 
chown -R rsync.rsync /backup 
4)将密码文件写入到/etc/rsync.password,并授予权限
echo “rsync_backup:chen”>/etc/rsync.password
chmod 600 /etc/rsync.password 
5)启动rsync服务
rsync –daemon 
6)检查端口是否开启 
netstat -tunpl |grep 873   
lsof -i :873


1.2 客服端配置如下:
1)将密码文件写入到/etc/rsync.pasword 
echo “rsync_backup:chen” >/etc/rsync.pasword 
2)进行远程数据同步测试,是否能实现pull/push功能  

rsync -avz /tmp  rsync_backup@10.0.0.11::backup –password-file=/etc/rsync.password 

rsync -avz rsync_backup@10.0.0.11::backup –password-file=/etc/rsync.password 

    注意:rsync数据的推拉只能在客服端执行

5.客户端排除命令
rsync -avz –exclude=a  /data/ rsync_backup@10.0.0.11::backup –password-file=/etc/rsync.password 

rsync -avz –exclude={a..g} /data/ rsync_backup@10.0.0.11::backup –password-file=/etc/rsync.password  

6.服务端排除命令
将如下命令放在/etc/rsyncd.conf(不常用)
exclude=a b  /tmp/chen 

7.无差异备份(谨慎使用,存在一定的风险操作,一般在两台服务器之间数据需必须一样的时候使用)
rsync -avz –delete /tmp/ rsync_backup@10.0.0.11::backup –password-file=/etc/rsync.password   

rsync -avz –delete rsync_backup@10.0.0.11::backup /tmp –password-file=/etc/rsync.password 

发表评论

电子邮件地址不会被公开。