rsync 是什么?
rsync 是 Linux/UNIX 系统下的文件同步和数据传输工具, 它采用了 "rsync 算法" 使一个客户机和远程文件服务器之间的文件同步. 可以将同一个服务器的数据从一个分区备份到另一个分区, 也可以将本地系统的数据通过网络传输方式备份到任何一个远程主机上; rsync 可以在中断后恢复传输; rsync 只传输源文件和目标文件之间不一致的部分; rsync 可以执行完整备份或增量备份.
rsync 的功能特性:
可以镜像保存整个目录树和文件系统;
可以增量同步数据, 文件传输效率高, 因而同步时间很短;
可以保持原文件的权限, 时间等属性;
加密传输数据, 保证了数据的安全性;
可以使用 rcp,ssh 等方式来传输文件;
支持匿名传输;
搭建远程容灾备份系统
需求描述: 要求对 web 服务器网站数据每分钟进行一次备份数据到远程的容灾服务器上, 由于数据量很大, 采用增量备份方式.
系统环境:
主机 | 操作系统 | IP 地址 | 备份目录 | 软件包 |
---|---|---|---|---|
web 服务器 | CentOS 7.0 x86_64 | 192.168.100.27 | /www | rsync-3.1.3.tar.gz |
容灾服务器 | CentOS 7.0 x86_64 | 192.168.100.28 | /www | rsync-3.1.3.tar.gz |
软件包: rsync-3.1.3.tar.gz https://pan.baidu.com/s/1Nxu1YpGGopiJwIsgeDKvLA 密码: iw95
一, Web 服务器:
1. 安装 rsync 软件包
- # 解压
- tar zxvf rsync-3.1.3.tar.gz
- # 切换目录
- cd rsync-3.1.3
- # 配置
- ./configure
- # 编译及安装
- make && make install
2. 修改 rsync 配置文件:
- /etc/rsyncd.conf
- uid = nobody #用户 ID
- gid = nobody #用户组 ID
- use chroot = no
- max connections = 10 #最大并发连接数, 默认 0(无限制)
- strict modes=yes #是否检查口令文件的权限, yes 时必须为 root 用户权限
- pid file = /var/run/rsyncd.pid #守护进程 PID 路径
- lock file=/var/run/rsync.lock #指定支持 max connections 的锁文件
- log file=/var/run/rsyncd.log #日志输出文件路径
- [www] #模块名称
- path = /www #需备份的文件或目录, 必设项
- comment = ftp area #描述文字
- ignore errors #可以忽略一些无关的 I/O 错误
- read only=no #no: 客户端可以上传文件 yes: 只读
- write only=no #no: 客户端可以下载文件 yes: 不能下载
- hosts allow= #: 允许连接任何主机
- hosts deny=192.168.100.10 #禁止连接 rsync 服务器的 IP
- list=false #客户端请求可以使用的模块列表时, 该模块是否被列出
- uid=root
- gid=root
- auth users=backup #用户名 backup, 与系统用户没有任何关系
- secrets file=/etc/server.pass #只有定义了 auth users 项, 该文件才起作用, 默认没有此文件, 须手动创建 (文件格式为:"用户名: 密码")
3. 新建密码文件 (文件格式: user:pass)
- /etc/server.pass
- > backup:www123
修改密码文件权限
chmod 600 /etc/server.pass
4. 启动 rsync 守护进程
/usr/local/bin/rsync --daemon
5. 查看 rsync 进程
ps -ef | grep rsync
二, 容灾服务器:
1. 安装 rsync 软件包
- # 解压
- tar zxvf rsync-3.1.3.tar.gz
- # 切换目录
- cd rsync-3.1.3
- # 配置
- ./configure
- # 编译及安装
- make && make install
2. 新建密码文件
- vim /etc/server.pass
- www123 // 同 web 服务器密码一致
修改密码文件权限
chmod 600 /etc/server.pass
3. 添加计划性任务
- crontab -e
- # 每分钟同步一次数据
- /usr/local/bin/rsync -vzrtopg --delete --progress --exclude "access" --exclude "debug*" backup@192.168.100.27::www /www --password-file=/etc/server.pass
测试结果
来源: http://blog.51cto.com/10316297/2134942