第三阶段基础
时 间:2023年7月13日
参加人:全班人员
内 容:
inotify+rsync同步和实时同步
目录
一、rsync远程同步
二、源端到发起端同步
安装部署:
源端(服务端):
(单台客户端)发起端进行同步:
发现源更新数据自动触发更新
三、单台源端,多台客户端同步
一、rsync远程同步
1、rsync的作用和特点
1)rsync的作用
是一个数据备份工具;
通过rsync传输文件或者目录
2)rsync的特点
支持本地数据备份
支持异地网络数据备份
支持增量备份
大文件或者小文件都可以使用rsync
2、常见的备份工具和rsync软件包的安装
1)常见的备份工具
cp
tar
scp
sftp
rsync
2)rsync命令的常见选项
-a归档模式包含-rlptoD
-r递归模式,同步目录使用
-l同步符号连接
-v显示详细信息
-z传输进行压缩
-p保留权限
-t保持源文件时间标记
-g保留组标识
-o保留用户标识
-H保留硬链接文件
-A保留ACL属性
-D保留设备文件特殊文件使用
--delete:同步数据删除目标源文件数据
--checksum:校验同步数据
二、源端到发起端同步
源端(服务端)的配置详解
systemctl stop firewalld
setenforce 0 关闭防火墙
rpm -qa rsync 检查软件是否安装
uid = nobody 管理账户
gid = nobody 管理组
use chroot = yes 禁锢在源目录
pid file = /var/run/rsyncd.pid rsync服务的id号
port 873 rsync服务启动监听的端口
address = 192.168.59.138 rsync服务器监听的ip地址
hosts allow = 192.168.59.* 允许192.168.100.0网络同步数据
[bdqn] 共享模块的名字
path = /bdqn rsync客户端同步根下的bdqn目录数据
comment = test 同步目录数据说明
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 文件后缀不需要压缩
read only = yes 同步目录数据只有读取权限
auth users = bob 同步验证账户bob
secrets file = /etc/rsync_user.db
配置身份验证数据库
安装部署:
环境配置:
服务器选择:
hostname | Ip地址 | |
服务端 | huyang1 | 192.168.59.137 |
客户端 | huyang2 | 192.168.59.138 |
1、关闭防火墙
2、配置免密登录
ssh-key-gen
ssh-copy-id 192.168.59.138
ssh huyang2 测试
源端(服务端):
步骤一:安装rsync同步软件
yum -y install rsync
步骤二:修改配置文件
vim /etc/rsyncd.conf
修改配置如下:
步骤三:建立读取同步账户和密码文件
vim /etc/rsyncd_users.db
haha:123456
chmod 600 /etc/rsyncd_users.db
mkdir -p /var/www/html
rsync --daemon
netstat -lanpt |grep rsync
touch /var/www/html/1.txt
(单台客户端)发起端进行同步:
步骤一:没有提前配置密码,同步数据
mkdir /root/wwwroot
rsync -avz --delete haha@192.168.59.137::wwwroot /root/html
步骤二:提前配置密码,同步数据
export RSYNC_PASSWORD=123456
rsync -avz --delete haha@192.168.59.137::wwwroot /root/html
3、rsync的实时同步数据
1、rsync同步数据的方式
1)rsync计划任务
同步容易延迟;
无法实时同步数据;
必须通过计划任务实现;
灵活性差。
2)inotify和rsync结合实时同步数据
需要通过脚本实现
3)inotifywait监控常见的命令选项
-e指定监控事件
-m持续监控
4)inotifywait监控事件的类型
create:创建目录或者文件触发同步
move:移动或者重命名触发同步
delete:删除数据触发同步
modify:修改数据触发同步
attrib:修改文件目录属性触发同步
发现源更新数据自动触发更新
源端(服务端)要安装监控软件:
步骤一:安装inotify实时软件
rz
tar xf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14/
./configure && make && make install
步骤二:配置实时同步脚本
vim b.sh
配置如下:
执行这个脚本sh a.sh
步骤三:在源端的存储位置建立新的文件
客户端(发起端)验证:
拓展:验证
inotifywait -rmq -e MOVE,DELETE,CREATE,ATTRIB
/var/www/html在脚本中起到的作用
在(服务端)源端实验:
实验结果证明:
上述命令在执行过程中,可以实时监控当前监控位置的文件的移动、修改、建立、权限的更改等!
三、单台源端,多台客户端同步
在多个客户端同步数据
(服务端)源端:
配置脚本文件:
执行脚本文件:sh b.sh
新建文件验证
客户端验证:
客户端huyang2和huyang3结果
由上述实验可以得知,同步可以在多个服务器之间进行,当然,客户端huyang3已经做了免密配置。