1. rsync是做什么的
rsync是remote rsync的缩写,即远程数据同步 主要用于对服务器的文件进行定期的同步备份和恢复,rsync第一次是全部同步备份,在以后的同步过程中如果不加--delete参数,则是每次都只传输增量和修改的部分,已经存在且没有任何变化的则不传输,而且源服务器已经删除的文件,备份服务器上不会删除 只有加了--delete参数,两台服务器的文件才会保持完全的一致
2. 原理介绍:
前言: 有A和B两台服务器,A作为web服务器对外提供服务,B作为备份服务器定期对A服务器上的文件进行备份
原理:
a.第一次备份,肯定是全部备份,假设现在要对A服务器上的文件httpd-2.2.4.tat.gz文件进行增量备份,那么B服务器首先会把自己本身已经有的httpd-2.2.4.tar.gz文件进行切割,切割成大小一样的L字节的数据块,最后一块可能会小一些
b.B服务器对切割好的文件进行两种检验,一种是32位的滚动弱校验,一种是128位的MD4强校验,校验完后把数据发给A
c.A服务器收到这些校验数据后,也会把httpd-2.2.4.tar.gz文件进行切割,切割成大小一样的L字节的数据块,在把B服务器发过来的结果进行比对,查看文件是否有更改
d.比对完后,A服务器会发给B服务器一串指令,此时如果文件有更改,不是说把整个文件都传送一遍,而是只传输那些校验不一样的数据块,注意这里不是整个文件,而是某个数据块,这样即能快速完成备份,又能节省带宽资源
3. 参数说明
rsync -aqzH 远程目录 备份目录 #使用aqzH参数,将远程目录同步一份到备份目录,从而实现备份的目的
-a :等价于rlptgoD 其中r表示对子目录进行递归 l保留软链接 p保持文件权限 t 保持文件时间信息 g保持文件属组信息 o保持文件所属用户信息 D保持文件设备信息
-q : 表示精简模式输出
-z : 表示对备份的文件在传输过程中进行压缩处理
-H : 表示保持文件的硬链接
4. 安装配置
a. yum 安装
yum install -y rsync xinetd
b. 编辑配置文件xinetd
vi /etc/xinetd.d/rsync
将文件中的disable = yes 更改为disable = no
c. 编辑配置文件/etc/rsyncd.conf
uid = root
gid = root
use chroot = no
strict modes = yes #检查口令文件的权限
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
hosts allow = 127.0.0.1
hosts deny = *
[backup]
path = /data/wwwroot/
comment = Backup the www
auth users = wxy
secrets file = /data/secure/rsyncd.secure
read only = yes
list = no
ignore errors
d. 配置密码文件
mkdir -p /data/secure/
vi /data/secure/rsyncd.secure
wxy:123456
e. 启动rsync服务
service xinetd restart
chkconfig xinetd on
chmod 600 /data/secure/rsyncd.secure
5. rsync客户端部署
a. 安装rsync客户端
yum install -y rsync
b. 编写rsync备份脚本
vi /data/script/rsync.sh
/usr/bin/rsync -vzrtopg --delete --progress wxy@192.168.217.130::backup /usr/local/src --password-file=/etc/rsync.pass
/usr/bin/rsync -vzrtopg --progress wxy@192.168.217.130::backup /usr/local/src
c. 编写密码文件
vi /etc/rsync.pass
123456
chmod 600 /etc/rsync.pass
chmod 755 /data/script/rsync.sh
d. 加入任务计划
crontab -e
*/2 * * * * /usr/bin/rsync -vzrtopg --delete --progress wxy@192.168.217.130::backup /usr/local/src --password-file=/etc/rsync.pass #2分钟备份
安装过程遇到问题
提示缺少:Rsyncd.conf 自己创建个 内容为空
服务器端:防火墙未关闭 或者添加一条规则即可
原文地址:http://wangxiaoyong.blog.51cto.com/2289427/1650443