文章目录
一:rsync介绍
Remote Sync,远程同步,它是一个开源的快速增量备份工具,可以在不同主机之间镜像同步整个目录树。
支持增量备份、保持连接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用
支持本地复制,或者与其他SSH、rsync主机同步
rsync 与scp FTP等工具备份的机制的优越性在于rsync 同步备份是先比较在拷贝变化过的数据,这样更节省资源,如有1T的数据只有1K的数据改变,则rsync 基本上备份只要同步1k 的数据而 scp 是个傻瓜式的拷贝,全部拷贝。
1.1:rsync 服务的模式
1、ssh方式进行同步
2、C/S 方式,rsync 有服务器端daemon模块 和rsync 客户端
1.2:rsync服务原理
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责相应来自客户机的rsync同步操作的服务器称为同步源。
在同步过程中,同步源负责提供文档的原始位置,发起端应对该位置有读取权限。
如下图:
rsync是一款快速增量备份工具,支持:
- 本地复制;
- 与其他SSH同步;
- 与rsync主机同步。
稍后从这三个方面来演示怎么使用rsync备份工具。
1.3:配置rsync源思路
配置rsync源服务器大致分为三步:
- 建立rsync配置文件;
- 为备份账户创建数据文件;
- 启动rsync服务。
二、搭建rsync服务
准备两台虚拟机,一台作为同步源,一台用于客户机发起同步。
2.1:建立rsync配置文件
语法
rsync [选项] 原始位置 目标位置
常用选项
-a: 归档模式,递归并保留对象属性,等同于-rlptgoD
-v: 显示同步过程的详细(verbose)信息
-z: 在传输文件时进行压缩(compress)
-H: 保留硬连接文件
-A: 保留ACL属性信息
-p: 保留文件的权限标记
-t: 保留文件的时间标记
-g: 保留文件的属组标记
-o: 保留文件的属主标记
-delete: 删除目标位置有而原始位置没有的文件
-checksum: 根据对象的校验和来决定是否跳过文件
同步源服务器:
[root@server1 ~]# rpm -q rsync #检查rsync是否安装
rsync-3.0.9-18.el7.x86_64
[root@server1 ~]# vi /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes #禁锢在宿主目录中
address = 192.168.158.10 #监听地址
port 873 #端口号
pid file = /var/run/rsyncd.pid #进程文件位置
log file = /var/log/rsyncd.log #日志文件位置
hosts allow = 192.168.158.0/24 #允许地址范围
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #不再压缩这几种格式的文件
[wwwroot]
path = /var/www/html #同步的目录
comment = www.tom.com
read only = yes #只读
auth users = backuper
secrets file = /etc/rsyncd_users.db #用户密码存放位置
- 创建backuper用户的密码文件
[root@server1 ~]# vi /etc/rsyncd_users.db
backuper:123456
- 给密码文件设置执行权限
[root@server1 ~]# chmod 600 /etc/rsyncd_users.db
- 启动rsync
[root@server1 ~]# rsync --daemon
[root@server1 ~]# netstat -anpt |grep rsync
tcp 0 0 192.168.158.10:873 0.0.0.0:* LISTEN 7360/rsync
- 安装httpd,有一个/var/www/html的共享目录,也可以自己创建
[root@server1 ~]# yum -y install httpd
[root@server1 ~]# echo "this is test web" > /var/www/html/index.html