Rysnc特性和优点
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。(增量)
压缩传输:rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
选择性保持:符号连接,硬链接,文件属性,权限,时间等

完整备份又分为差异备份,增量备份
完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地
差量备份:备份上次完全备份以后有变化的数据(他针对的上次的完全备份,他备份过程中不清除存档属性)
增量备份:备份上次备份以后有变化的数据.(他才不管是那种类型的备份,有变化的数据就备份,他会清除存档属性)*
服务端和客户端
安装部署。RSYNC依然采用CS架构,默认端口873

服务器端和测试段都要安装
安装 yum -y install rsync

RSYNC命令常用的参数

-a 权限保存模式,相当于 -lgrtopD存档 递归保持属性    
-r 复制所有资料,递归处理
-p 保留档案权限,文件的属性
-t 保持时间
-g 保持属组
-o 保持属主
-D 保持device资讯
-l 复制所有链接 包括链接文件
-z 压缩
-H 保留硬链接
-A 保持ACL配合 --perms
-P 表示传输进度
--version
-v 复杂输出信息
-u 更新
--port 定义端口
一般用的组合都是azv

RSNYC的常见两种方式

1.客户端将数据推送到服务端,在规定的时间,通过规定的参数,将规定的数据,推送到指定的机器
 客户端推送的语法
         1.rsync 参数 本地路径  认证用户@主机地址::(服务的配置文件中定义的模块名) 记住这个即可
         例如:rsync -azv /data/ back_user@IP::/data --password-file=/etc/rsync.password.
#      要注意的是 data/意思是 只拷贝data下的目录,而data 则包括data目录
         2.rsync 参数 本地路径  rsync://认证用户@主机地址/模块名 ##不常用
2.服务端将数据拉取到服务器端,  在规定的时间,通过规定的参数,把规定的数据,拉到本服务器
    客户端拉取的语法
         1.rsync 参数 认证用户@主机地址::(服务的配置文件中定义的模块名) 本地路径 记住这个即可
         2.rsync 参数  rsync://认证用户@主机地址/模块名 本地路径

服务端部署

vi /etc/rsyncd.conf
直接在文件最底部加入
uid = root  #定义进程的uid gid
gid = root
use chroot = yes  #打开监牢模式,如果该服务被黑了,则无法在其他文件内写入 
address = IP #监听的IP
max connection = 5  #最大连接数 自定义
pid file = /var/run/rsyncd.pid  #进程pid 日志 和 最大连接数的锁文件
log file = /var/log/rsyncd.log
lock file =/var/log/rsyncd.lock
fake super = yes                                   #后期如果进程不使用root用户,需要整个参数,才能复制权限和时间
read only = false     #读写模式
hosts allow = 192.168.1.0/24   #允许访问的网段
auth users =user  #允许访问的用户
secrets file = /etc/rsync.password # 用户的密码文件存放位置
[date]  #模块,用于访问时写的模块
path = /date/  #路径
comment = welcome to   #提示信息 

在服务端和客户端分别创建密码文件

在服务端创建密码文件
vi /etc/rsync.password
back_user:123qwe                                    #前面为用户名,后面为密码
chmod 600 /etc/rsync.password #该文件必须为600权限
在客户端创建密码文件
vi /etc/rsync.password
123qwe                                    #只写密码
chmod 600 /etc/rsync.password #该文件必须为600权限

测试

一般采用客户端推送方式
rsync -avz /data back_user@服务端IP::data --passowrd-file=/etc/rsync.password
客户端的目录 也就是 data是可以更换的,但必须存在。 测试成功后 进入下一步

要实现自动化备份,方式很多,此处采用sersync的方式(部署在客户端)

链接:https://pan.baidu.com/s/1_qzHjts6pmp_SfD2Qn5r-g  
提取码:8y0e
由于该软件可能需要特殊方式上网,故此提供一个包,不大
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/ sersync
sersync]# ls
confxml.xml   配置文件  sersync2 启动脚本
vi confxml.xml
修改24--28行

           #本地同步目录
              #rsync模块名称和服务端IP
修改31--34行,认证部分【rsync密码认证】

           
             #打开自动推送,指定用户和密码
           
           
           
该配置文件拼凑出一个命令 ; rsync -artuz -R --delete ./ back_user@ip::data --password-file=/etc/rsync.password

启动服务

启动服务
/app/sersync/sersync2  -d -r -o /app/service/sersync/confxml.xml      #-d 后台运行 -r理解为递归 -o 指定配置文件
-d 启用守护进程即后台运行
-r 在监控前将监控目录与远程主机推送一遍
-n 指定守护线程的数量 默认为10 
-o 指定配置文件
-m 单独启用其他模块 refreshCDN 开启刷新CDN模块 socket http

当服务启动成功后,会首先自动执行一条命令,该命令是由sersync拼凑出来的一条由客户端推送到服务器的命令
随即测试即可

RSYNC_第1张图片
测试服务是否正常

在指定的本地目录(文中我所指定的是,wordpress博客项目默认存储博客的地点)随意添加或更改删除一个文件,若服务端对应目录发生变化则为成功