一、实验环境
主机名 |
网卡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
本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1787771,如需转载请自行联系原作者