rsync远程同步

rsync远程同步

  • rsync同步简介
  • 同步方式
  • 备份方式
  • rsync命令基本用法
  • 配置服务端与客户端的实验
  • 发起端(客户端)配置rsync+inotify

缓存穿透:redis大部分情况通过key查对应值若key不存在就查不到就会去数据库找。如果有大量这样请求,这些请求就像穿透了一样直接打在数据库上

(去redis找,找不到,去mysql中找,不停的找)
rsync远程同步_第1张图片
缓存击穿:

缓存雪崩:当某一个时刻出现大规模的缓存失效的情况,那么就会导致大量的请求直接打在数据库上面,导致数据库压力巨大,如果在高并发的情况下,可能瞬间就会导致数据库宕机。这时候如果运维马上又重启数据库,马上又会有新的流量把数据库打死。这就是缓存雪崩。

解决:

高热数据永不过期

rsync远程同步(同步现有数据,增量)

rsync同步简介

一款快速增量备份工具(远程同步);支持本地复制,或者与其他ssh、rsync主机同步

cp将源文件完整复制到指定路径下“全备”

rsync做本地复制的话

1.首先将源文件和目标位置文件对比,找出差异部分

2.根据目的位置文件与源文件差异部分,进行一致性同步

同步方式

(1)完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地。
(2)差量备份:备份上次完全备份以后有变化的数据(他针对的上次的完全备份,他备份过程中不清除存档属性)。
(3)增量备份:备份上次备份以后有变化的数据(他才不管是那种类型的备份,有变化的数据就备份,他会清除存档属性)

备份方式

1.发起端:负责rsync 同步操作的客户端叫做发起端,通知服务器我要备份你的数据

2.备份源:负责响应来自客户机rsync 同步操作的服务器叫做备份源,需要备份的服务器

3.服务器端:负责运行rsync服务,一般来说,需要备份的服务器

4.客户端:存放备份数据

rsync同步源

指定备份操作的远程服务器,也称为备份源(监听端口:873)

rsync远程同步_第2张图片

rsync命令基本用法

rsync [选项] 原始位置 目标位置

常用选项

-r:递归模式,包含目录及子目录中的所有文件

-l:对于符号链接文件仍然复制为符号链接文件

-v:显示同步过程的详细信息

-z:在传输文件时进行压缩

-a:归档模式,保留文件的权限、属性等信息,等同于组合选项

-p:保留文件的权限标记

-t:保留文件的时间标记

-g:保留文件的属组标记(仅超级用户使用)

-o:保留文件的属主标记(仅超级用户使用)

-H:保留硬链接文件

-A:保留ACL属性信息

-D:保留设备文件及其他特殊文件

rsync备份操作示例

rsync+inotify结合使用(实时监控)

配置服务端与客户端的实验

192.168.109.1 服务端

192.168.109.2 客户端

配置rsync源服务器(192.168.109.1)

1.检查rsync是否安装
在这里插入图片描述
2.
rsync远程同步_第3张图片
为备份账户创建数据文件

vim /etc/rsyncd_users.db

rsync远程同步_第4张图片

#保证所有用户对源目录/var/www/html 都有读取权限
在这里插入图片描述
启动
在这里插入图片描述
配置rsync客户端(192.168.109.2)
rsync远程同步_第5张图片

免交互格式配置

rsync远程同步_第6张图片
验证

服务端
在这里插入图片描述

客户端
在这里插入图片描述

发起端(客户端)配置rsync+inotify

192.168.109.1
rsync远程同步_第7张图片
rsync远程同步_第8张图片

cd /opt/ky29
vim /etc/sysctl.conf

rsync远程同步_第9张图片
安装 inotify-tools

tar -xf  inotify-tools-3.14.tar.gz -C /opt/

rsync远程同步_第10张图片

make && make install

rsync远程同步_第11张图片
另一个终端

vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ [email protected]::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
##while判断是否接收到监控记录
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done

rsync远程同步_第12张图片

chmod +x /opt/inotify.sh
chmod 777 /var/www/html/
chmod +x /etc/rc.d/rc.local
echo '/opt/inotify.sh' >> /etc/rc.d/rc.local

rsync远程同步_第13张图片

rsync适合在什么场景中

  1. 两台服务器之间数据同步;
  2. 全网集群架构服务器数据备份,把所有客户服务武器数据定时同步到备份服务器;
  3. rsync结合inotify的功能做实时数据同步;

在本地第一次完备第二次增量

你可能感兴趣的:(缓存,数据库,redis)