第二阶段基础
时 间:2023年5月29日
参加人:全班人员
内 容:
Rsync服务
目录
一、基本信息
二、rsync命令
三、rsync+inotfy实时同步
一、基本信息
(一)概述
rsync是linux 下一个远程数据同步工具
他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的传输
会对比两个文件的不同部分,传输差异部分,因此传输速度相当快
rsync可拷贝、显示目录属性,以及拷贝文件,并选择性的压缩及递归拷贝
(二)特性
1、快速:
第一次传输全部,下一次传输差异
rsync在传输过程中可以实行压缩和解压缩,使用更少的带宽
2、安全:
可以使用scp、ssh等方式传输
直接通过socket连接
支持匿名传输、方便进行网站镜像
(三)应用场景
增量同步
备份迁移
(四)rsync传输模式
本地传输:本地同步数据,类似于cp
远程传输:远程同步数据,类似于scp
守护进程:通过模块化的方式实现批量传输
(五)rsync应用
1、安装 yum -y install rsync
2、监听端口号 TCP/873
二、rsync命令
(一)rsync命令
格式:rsync [选项] 原始位置 目标位置
(二)作为远程命令:
拉取
rsync [OPTION...] [USER@]HOST:SRC... [DEST]
推送
rsync [OPTION...] SRC... [USER@]HOST:DEST
(三)作为rsync服务:
拉取
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
推送
rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync:
//[USER@]HOST[:PORT]/DEST
选项:
-a 归档模式,递归并保留对象属性,等同于-rlptgoD
-v -verbose 显示同步过程的详细信息
-z 在传输文件时进行压缩
举例:
本地:
rsync -avz abc/ /opt
rsync -avz /abc /opt
远程:
rsync -avz root@192.168.2.7:/etc/hostname /root/
rsync-avz /root/hostname root@192.168.2.7: /etc/hostname
(四)配置文件:
/etc/rsyncd.conf
全局配置
模块配置:
三、rsync+inotfy实时同步
(一)服务器端
1、安装网站服务,启动,但是不写首页文件
yum -y install httpd
systemctl start httpd
2、修改主配置文件 (/etc/rsyncd.conf)
uid = root
gid = root
[wwwroot]
path = /var/www
comment = backup export area
read only = false
hosts allow = 192.168.1.0/24
(二)客户端
1、开发客户端
安装inotify工具
inotify-tools
tar xf inotify-tools-3.14.tar.gz
./configure && make && make install
2、配置内核参数
vim /etc/sysctl.conf
fs.inotify.max_user_instances = 1024
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_watches=1048576
sysctl -P
inotifywait -mrq -e modify,create,move,delete /var/www/html
3、编写脚本
vim /opt/inotify_rsync.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html"
RSYNC_CMD="rsync-azH--delete /var/www/html 192.168.115.130::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
$RSYNC_CMD
done
4、赋予执行权限
chmod +x inotify_rsync.sh
5、写入文件
vim /etc/rc.local
/opt/inotify_rsync.sh
6、修改index.html文件,验证