杭州知名建设网站设计,做一个个人网站,wordpress标题字体大小,wordpress小说网站模板下载一、概述
rsync是linux 下一个远程数据同步工具
他可通过LAN/WAN快速同步多台主机间的文件和目录#xff0c;并适当利用rsync 算法减少数据的传输
会对比两个文件的不同部分#xff0c;传输差异部分#xff0c;因此传输速度相当快
rsync可拷贝、显示目录属性#xff0c…一、概述
rsync是linux 下一个远程数据同步工具
他可通过LAN/WAN快速同步多台主机间的文件和目录并适当利用rsync 算法减少数据的传输
会对比两个文件的不同部分传输差异部分因此传输速度相当快
rsync可拷贝、显示目录属性以及拷贝文件并选择性的压缩及递归拷贝
二、特性
快速
第一次传输全部下一次传输差异
rsync在传输过程中可以实行压缩和解压缩使用更少的带宽
安全
可以使用scp、ssh等方式传输
直接通过socket连接
支持匿名传输、方便进行网站镜像
三、应用场景
增量同步
备份迁移
四、数据的同步方式
数据备份拉取下载 pull
数据恢复推送上传 push
五、rsync传输模式
本地传输 本地同步数据类似于cp
远程传输 远程同步数据类似于scp
守护进程 通过模块化的方式实现批量传输
六、rsync应用
安装
yum -y install rsync
如果已经安装直接启动
systemctl start rsyncd
监听端口号
TCP/873
七、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 root192.168.2.7:/etc/hostname /root/ rsync -avz /root/hostname root192.168.2.7:/etc/hostname
配置文件
/etc/rsyncd.conf
全局配置
address独立运行时用于指定服务器运行的 IP 地址默认本地所有IPport指定 rsync 守护进程监听的端口号默认 873pid filersync 的守护进程将其 PID 写入指定的文件log file指定 rsync 守护进程的日志文件而不将日志发送给 syslogsyslog facility指定 rsync 发送日志消息给 syslog 时的消息级别socket options指定自定义 TCP 选项lockfile指定rsync的锁文件存放路径timeout超时时间
模块配置
path指定当前模块的同步路径该参数是必须指定的comment给模块指定一个描述use chroot在服务运行时要不要把他锁定在家目录默认为 trueuid和gid 指定rsync运行用户和用户组默认nobodymax connections最大并发连接数0为不限制lock file指定支持 max connections的锁文件。默认/var/run/rsyncd.locklist指定列出模块列表时该模块是否被列出。默认为 trueread only只读选择默认truewrite only只写选择不让客户端从服务器上下载文件。默认falseignore errors忽略IO错误默认trueignore nonreadable指定 rysnc 服务器完全忽略那些用户没有访问权限的文件。dont compress用来指定那些在传输之前不进行压缩处理的文件。hosts allow指定哪些主机客户允许连接该模块。默认值为 *hosts deny指定哪些主机客户不允许连接该模块auth users指定用于上传的用户名secrets files指定密码文件
守护进程传输
配置
uidrsyncgidrsyncfake superyes # 用于允许非root用户在备份目录创建文件listfalse# 默认true允许查看本机有哪些模块auth usersrsync_backup# 用于指定认证用户secrets file/etc/rsync.passwd# 指定认证用户密码read only falsemax connections4# 允许最大连接数read onlyfalse 默认yes模块目录只读权限ignore errors# 屏蔽错误报错timeout900# 指定rsync传输超时时间[backup]path/backup
创建用户
useradd rsync -s /sbin/nologin -M
创建认证用户的密码
echo rsync_backup:123456 /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
准备模块目录
mkdir /backup
chown rsync.rsync /backup
重启服务
systemctl restart rsyncd
客户端远程传输
rsync -avz /etc/hosts rsync_backup192.168.2.62::backup
通过密码文件实现免密传输
vim /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
rsync -avz /etc/hosts rsync_backup192.168.2.62::backup --password-file /etc/rsync.passwd
实验练习
1.使用认证用户为jx_名字缩写认证密码为班级编号
2.模块名称为juexing
3.自行修改文件内容在服务器上实现同步
vim /etc/rsyncd.conf 写入红框内容
useradd rsync -s /sbin/nologin -M 创建rsync用户并给到命令权限
echo jx_lwj:2305 /etc/rsync.passwd 给认证用户设置密码
chmod 600 /etc/rsync.passwd 并设置权限 mkdir /juexing 准备模块目录 chown rsync.rsync /juexing 目录属组属主要是给到sbin命令权限的用户与组 systemctl restart rsyncd 重启服务
打开客户端
rsync -avz /etc/hosts jx_lwj192.168.1.1::juexing
测试成功后设置通过密码文件实现免密传输
vim /etc/rsync.passwd 写入刚才设置的密码2305
chmod 600 /etc/rsync.passwd 设置密码文件权限
rsync -avz /etc/hosts jx_lwj192.168.1.1::juexing --password-file /etc/rsync.passwd 自动读取密码文件在/etc/rsync.passwd rsyncinotfy实时同步
服务器端
安装网站服务启动但是不写首页文件
修改主配置文件
vim /etc/rsync.config
uid root gid root
[wwwroot] path /var/www/html comment backup export area read only false hosts allow 192.168.1.0/24 开发客户端
安装inotify工具
inotify-tools
tar xf inotify-tools-3.14.tar.gz
./configure make make install 配置内核参数
vim /etc/sysctl.conf
fs.inotify.max_user_instances 1024
fs.inotify.max_queued_events 16384
fs.inotify.max_user_watches1048576 sysctl -P inotifywait -mrq -e modify,create,move,delete /var/www/html
这条命令输入后 可以实时观察写入、删除等 编写脚本
vim /opt/inotify_rsync.sh
#!/bin/bash INOTIFY_CMDinotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/ RSYNC_CMDrsync -azH --delete /var/www/html/192.168.1.1::wwwroot $INOTIFY_CMD | while read DIRECTORY EVENT FILE do $RSYNC_CMD done 赋予执行权限
chmod x inotify_rsync.sh 写入文件开机自启
vim /etc/rc.local
/root/inotify_rsync.sh