提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
一、概述
二、特性
三、应用场景
四、数据的同步方式
五、rsync传输模式
六、rsync应用
七、rsync 命令
1. 格式
1.1 作为远程命令
1. 2 作为rsync服务
2. 选项
3. 配置文件
3.1 全局配置
3.2 模块配置
4. 守护进程传输
4.1 配置
4.2 创建用户
4.3 创建认证用户的密码
4.4 准备模块目录
4.5 重启服务
4.6 客户端远程传输
4.7 通过密码文件实现免密传输
八、 rsync+inotfy实时同步
1. 服务器端
2.开发客户端
2.1 安装inotify工具
2.2 配置内核参数
2.3 命令
2.4 编写脚本
2.5 赋予执行权限
2.6 写入文件
总结
前言
今天学习的是rsync ,也是不用安装,直接用的服务,内容比较简单,我们一起来看看今天的内容吧!
提示:以下是本篇文章正文内容,下面案例可供参考
一、概述
    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 命令
1. 格式
rsync [选项] 原始位置 目标位置
1.1 作为远程命令
  拉取
             rsync [OPTION...] [USER@]HOST:SRC... [DEST]
   推送
             rsync [OPTION...] SRC... [USER@]HOST:DEST
  1. 2 作为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
2. 选项
    -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 
3. 配置文件
/etc/rsyncd.conf
  3.1  全局配置
 
| address | 独立运行时,用于指定服务器运行的 IP 地址,默认本地所有IP | 
| port | 指定 rsync 守护进程监听的端口号,默认 873 | 
| pid file | rsync 的守护进程将其 PID 写入指定的文件 | 
| log file | 指定 rsync 守护进程的日志文件,而不将日志发送给 syslog | 
| syslog facility | 指定 rsync 发送日志消息给 syslog 时的消息级别 | 
| socket options | 指定自定义 TCP 选项 | 
| lockfile | 指定rsync的锁文件存放路径 | 
| timeout | 超时时间 | 
        
   3.2   模块配置
 
| path | 指定当前模块的同步路径,该参数是必须指定的 | 
| comment | 给模块指定一个描述 | 
| use chroot | 在服务运行时要不要把他锁定在家目录,默认为 true | 
| uid和gid | 指定rsync运行用户和用户组,默认nobody | 
| max connections | 最大并发连接数,0为不限制 | 
| lock file | 指定支持 max connections的锁文件。默认/var/run/rsyncd.lock | 
| list | 指定列出模块列表时,该模块是否被列出。默认为 true | 
| read only | 只读选择,默认true | 
| write only | 只写选择,不让客户端从服务器上下载文件。默认false | 
| ignore errors | 忽略IO错误,默认true | 
| ignore nonreadable | 指定 rysnc 服务器完全忽略那些用户没有访问权限的文件。 | 
| dont compress | 用来指定那些在传输之前不进行压缩处理的文件。 | 
| hosts allow | 指定哪些主机客户允许连接该模块。默认值为 * | 
| hosts deny | 指定哪些主机客户不允许连接该模块 | 
| auth users | 指定用于上传的用户名 | 
| secrets files | 指定密码文件 | 
4. 守护进程传输
4.1 配置
    uid=rsync
     gid=rsync
     fake super=yes     # 用于允许非root用户,在备份目录创建文件
     list=false              # 默认true,允许查看本机有哪些模块
     auth users=rsync_backup  # 用于指定认证用户
     secrets file=/etc/rsync.passwd  # 指定认证用户密码
     read only = false
     max connections=4                 # 允许最大连接数
     read only=false                       # 默认yes,模块目录只读权限
     ignore errors                          # 屏蔽错误报错
     timeout=900                          # 指定rsync传输超时时间
     [backup]
     path=/backup

4.2 创建用户
   useradd rsync -s /sbin/nologin -M          
      
4.3 创建认证用户的密码
     echo 'rsync_backup:123456' >/etc/rsync.passwd
     chmod 600 /etc/rsync.passwd   


4.4 准备模块目录
    mkdir /backup
     chown rsync.rsync /backup   

4.5 重启服务
systemctl restart rsyncd

4.6 客户端远程传输
rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup

服务端查看

4.7 通过密码文件实现免密传输
   vim /etc/rsync.passwd
         123456
     chmod   600 /etc/rsync.passwd
     rsync -avz /etc/hosts rsync_backup@192.168.2.62::backup --password-file /etc/rsync.passwd

 练习
     1、使用认证用户为jx_名字缩写,认证密码为班级编号
     2、模块名称为juexing
     3、客户端创建文件user.txt,内容为所有的用户信息
     4、自行修改文件内容,在服务器上实现同步
服务端

客户端


服务端查看

八、 rsync+inotfy实时同步
1. 服务器端
  安装网站服务,启动,但是不写首页文件
     修改主配置文件
         uid = root
         gid = root
         [wwwroot]
     path = /var/www/html
     comment = backup export area
     read only = false
     hosts allow = 192.168.1.0/24


2.开发客户端
2.1 安装inotify工具
        inotify-tools
         tar xf  inotify-tools-3.14.tar.gz
         ./configure && make && make install




2.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


2.3 命令
inotifywait -mrq -e modify,create,move,delete /var/www/html
客户端上传
服务端查看

   2.4 编写脚本 
 
 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
服务端



2.5 赋予执行权限
chmod +x inotify_rsync.sh
2.6 写入文件
   vim /etc/rc.local
             /root/inotify_rsync.sh
客户端 

服务端


总结
以上就是今天要讲的内容,本文仅仅简单介绍了rsync 的概念、用途及使用方法,需要我们动手操作起来,所以,要好好联系哦!


