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的常见两种方式app
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://认证用户@主机地址/模块名 本地路径
服务端部署ssh
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 #提示信息
在服务端和客户端分别建立密码文件socket
在服务端建立密码文件 vi /etc/rsync.password back_user:123qwe #前面为用户名,后面为密码 chmod 600 /etc/rsync.password #该文件必须为600权限 在客户端建立密码文件 vi /etc/rsync.password 123qwe #只写密码 chmod 600 /etc/rsync.password #该文件必须为600权限
测试ide
通常采用客户端推送方式 rsync -avz /data back_user@服务端IP::data --passowrd-file=/etc/rsync.password 客户端的目录 也就是 data是能够更换的,但必须存在。 测试成功后 进入下一步
要实现自动化备份,方式不少,此处采用sersync的方式(部署在客户端)wordpress
连接: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行 <sersync> <localpath watch="/date/"> #本地同步目录 <remote ip="IP" name="test"/> #rsync模块名称和服务端IP 修改31--34行,认证部分【rsync密码认证】 <rsync> <commonParams params="-artuz"/> <auth start="true" users="user" passwordfile="/etc/rsync.passwd"/> #打开自动推送,指定用户和密码 <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 --> <ssh start="false"/> 该配置文件拼凑出一个命令 ; 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拼凑出来的一条由客户端推送到服务器的命令 随即测试便可
测试服务是否正常网站
在指定的本地目录(文中我所指定的是,wordpress博客项目默认存储博客的地点)随意添加或更改删除一个文件,若服务端对应目录发生变化则为成功