rsync是什么?

rsync是Linux/UNIX系统下的文件同步和数据传输工具,它采用了“rsync算法”使一个客户机和远程文件服务器之间的文件同步。可以将同一个服务器的数据从一个分区备份到另一个分区,也可以将本地系统的数据通过网络传输方式备份到任何一个远程主机上;rsync可以在中断后恢复传输;rsync只传输源文件和目标文件之间不一致的部分;rsync可以执行完整备份或增量备份。

rsync的功能特性:

  • 可以镜像保存整个目录树和文件系统;
  • 可以增量同步数据,文件传输效率高,因而同步时间很短;
  • 可以保持原文件的权限、时间等属性;
  • 加密传输数据,保证了数据的安全性;
  • 可以使用rcp、ssh等方式来传输文件;
  • 支持匿名传输;

搭建远程容灾备份系统

需求描述: 要求对Web服务器网站数据每天凌晨1:00进行一次备份数据到远程的容灾服务器上,由于数据量很大,采用增量备份方式。

系统环境:

主机 操作系统 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 密码:iw95

一、Web服务器:

1.安装rsync软件包

#解压
tar zxvf rsync-3.1.3.tar.gz -C /opt
#切换目录
cd /opt/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项,该文件才起作用,默认没有此文件,须手动创建(文件格式为:"用户名:密码")

Rsync 搭建远程容灾备份系统

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

Rsync 搭建远程容灾备份系统

二、容灾服务器:

1.安装rsync软件包

#解压
tar zxvf rsync-3.1.3.tar.gz -C /opt
#切换目录
cd /opt/rsync-3.1.3
#配置
./configure
#编译及安装
make && make install

2.新建密码文件

vim /etc/server.pass

www123 //同web服务器密码一致

修改密码文件权限

chmod 600 /etc/server.pass

3.添加计划性任务

crontab -e

#每分钟同步一次数据

  • 1 /usr/local/bin/rsync -vzrtopg --delete --progress --exclude "access" --exclude "debug" backup@192.168.100.27::www /www --password-file=/etc/server.pass

测试结果

Rsync 搭建远程容灾备份系统

Rsync 搭建远程容灾备份系统