概述html
1、rsync(Remote Sync远程同步)服务器
是一款开源的快速备份工具,能够在不一样主机间镜像同步数据,支持本地复制,或与其余SSH、rsync主机同步,rsync应用普遍,大多数Linux都将其做为默认组件已安装。负载均衡
2、组成ssh
①发起端:负责发起rsync同步操做的客户机ide
②备份源:负责响应来自客户机rsync同步操做的服务器,能够是SSH备份源或rsync备份源工具
3、同步方式测试
①下行同步:备份源负责提供文档的原始位置;发起端应对该位置有读取权限网站
②上行同步:备份源负责提供文档的目标位置;发起端应对该位置有写入权限spa
4、inotify机制rest
①Linux内核从2.6.13开始提供inotify机制,能够监控文件系统的变更状况做出通知响应,如能够针对目录或文件的变化及时做出响应
②使用rsync工具与inotify机制相结合,可实现触发式实时同步
③inotify机制由内核提供,主要作本机监控,所以更适合上行同步
④辅助工具:inotify-tools
inotifywait:用于持续监控,实时输出结果
inotifywatch:用于短时间监控,任务完成后再出结果
实验环境:
搭建两台WEB服务器以实现负载均衡,所以两台服务器的网站文档内容必须相同,使用rsync进行远程同步,须要结合inotify机制实现触发式的上行同步,保持两个站点内容一致。
服务器A:192.168.4.254,做为rsync发起端,/var/www/html为原始位置
服务器B:192.168.4.100,做为远程SSH服务器,/var/www/html为目标位置
注:两台服务器都须要安装配置Apache,请自行解决
1、配置SSH备份源(服务器B)
1、建立备份用户rput,准备目录/var/www/html
useradd rput
passwd rput
mkdir –p /var/www/html -----安装Apache时也会自动建立此目录
2、将目录/var/www/html属主改成rput,并设置ACL容许用户daemon写入
chown -R rput:rput /var/www/html
setfacl -R -m user:daemon:rwx /var/www/html
setfacl -R -m default:user:daemon:rwx /var/www/html
getfacl /var/www/html
3、配置并启用sshd服务,容许rput用户登录
vi /etc/ssh/sshd_config
allowusers rput
service sshd restart
2、使用rsync备份工具(服务器A)
1、建立备份用户tom,建立目录/var/www/html,并添加测试网页文件
useradd tom
passwd tom
echo "welcome to benet." > /var/www/html/index.html
2、将目录/var/www/html属主改成tom,并设置ACL容许用户daemon写入
chown -R tom:tom /var/www/html
setfacl -R -m user:daemon:rwx /var/www/html
setfacl -R -m default:user:daemon:rwx /var/www/html
getfacl /var/www/html
3、由tom用户建立SSH密钥对,并将密钥短语设为空,实现无交互登录
su – tom
ssh-keygen -t rsa
4、将tom用户公钥分发给服务器B的rput用户,并验证登录
ssh-copy-id rput@192.168.4.100
ssh rput@192.168.4.100
注:①ssh-copy-id命令能够把本地的ssh公钥文件安装到远程主机对应的帐户下
②也可以使用scp命令将公钥文件拷贝至服务器,再导入到储存密钥的文件中
③例scp ~/.ssh/id_rsa.pub rput@192.168.4.100:/tmp
cat /tmp/id_rsa.pub >> /home/rput/.ssh/authorized_keys
5、使用rsync作上行同步
rsync -az --delete /var/www/html/ rput@192.168.4.100:/var/www/html/
6、在服务器B查看同步的状况
ls /var/www/html
注:rsync命令的用法
①基本格式:rsync [选项] 原始位置 目标位置
②经常使用选项:
-a:归档模式,递归并保留对象属性,等同于 -rlptgoD
-v:显示同步过程的详细(verbose)信息
-z:在传输文件时进行压缩(compress)
-H:保留硬链接文件
-r:递归模式,包含目录及子目录中全部文件
-l:对于符号连接文件仍然复制为符号连接文件
-p:保留文件的权限标记
-t:保留文件的时间标记
-g:保留文件的属组标记(仅超级用户使用)
-o:保留文件的属主标记(仅超级用户使用)
-D:保留设备文件及其余特殊文件
--delete:删除目标位置有而原始位置没有的文件
--checksum:根据对象的校验和来决定是否跳过文件
3、经过inotify机制实现实时同步(服务器A)
1、安装inotify-tools软件包,以便使用inotifywait、inotifywatch工具
tar zxf inotify-tools-3.14.tar.gz -C /usr/src/
cd /usr/src/inotify-tools-3.14/
./configure
make && make install
2、编写脚本,根据inotifywait监控结果触发rsync同步操做
su - tom -------切换为备份用户tom
vi rputsync.sh
chmod a+x rputsync.sh
注:inotifywait经常使用选项
-m 持续进行监控
-r 递归监控全部子对象
-q 简化输出信息
-e 指定要监控哪些事件类型,如modify、create、move、delete
3、执行脚本,修改/var/www/html目录内容,验证同步效果
su - tom ------必须以tom身份运行脚本
./rputsync.sh
cd /var/www/html
touch a b c
在目标位置(服务器B)查看同步的状况
ls /var/www/html
补充:配置rsync备份源
1、创建/etc/rsyncd.conf配置文件
vi /etc/rsyncd.conf
2、建立帐户数据文件
vi /etc/rsyncd_users.db
backuper:123
chmod 600 /etc/rsyncd_users.db
3、启动rsync服务程序
rsync –daemon
netstat -anptu | grep rsync
vi /etc/xinetd.d/rsync
disable = no
yum –y install xinetd
service xinetd start