Rsync私房菜————|Rsync远程同步 |Rsync下行同步|Rsync+Inotify实时同步 |详细图解|

news/2024/7/8 4:41:21

Rsync

  • 一、Rsync
    • 1.1 Rsync特性
    • 1.2 部署Rsync下行同步
      • 1.2.1 Master节点
      • 1.2.2 Slave节点
        • 赋予权限并后台运行
        • 创建一个新的文件并删除一个已有的文件

一、Rsync

Rsync是一种快速且用途广泛的文件复制工具,常用于备份和镜像
官方网站:https://rsync.samba.org/
使用delta-transfer算法 监听端口 873 运行模式 C/S

1.1 Rsync特性

  1. 可以镜像保存整个目录树和文件系统
  2. 可以很容易做到保持原来文件的权限、时间、软硬链接等等
  3. 无须特殊权限即可安装
  4. 优化的流程,文件传输效率高
  5. 可以使用rcpssh等方式来传输文件,当然也可以通过直接的socket连接
  6. 支持匿名传输

1.2 部署Rsync下行同步

节点名IP地址
master192.168.0.10
slave192.168.0.20

1.2.1 Master节点

安装配置

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum -y install rsync
vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = yes
address = 192.168.0.10
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.0.0/24
[wwwroot]        
path = /var/www/html
comment = Document Root of www.example.com
read only = yes
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = fox
secrets file = /etc/rsyncd_users.db
#创建用户文件格式[用户名:密码]
echo "fox:123456" > /etc/rsyncd_users.db
#设置其权限600[官方推荐值]
chmod 600 /etc/rsyncd_users.db

 

    开启服务

    #开启服务
    rsync --daemon
    #检查端口服务是否开启
    netstat -natp | grep "rsync"
    mkdir -p /var/www/html
    cd /var/www/html
    touch dog.html cat.html
    ls
    
     

      1.2.2 Slave节点

      systemctl stop firewalld
      systemctl disable firewalld
      setenforce 0
      
      yum install -y rsync
      
      mkdir /slave
      chmod 777 /slave
      
      #配置绵密交互
      echo "123456" > /etc/server.pass
      
      #给密钥文件赋权600
      chmod 600 /etc/server.pass
      
      rsync -az --delete --password-file=/etc/server.pass fox@192.168.0.10::wwwroot /slave
      #rsync,使用密钥文件/etc/server/pass对应fox用户,IP地址为192.168.0.10的共享模块文件进行压缩,并归档同步至当前服务器的/slave目录下,同时删除差异内容,保持一致性
      
      ls /slave
      #查看下行同步是否成功
      
       

        1.3 报错排查

        @ERROR: auth failed on module wwwroot


        检查用户名密码是否与Master配置文件中的相符

        二、Intofy

        Inotify是Linux内核特性,用于监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如读写删等操作

        2.1 Intofy的使用方法

        inotifywait -mrq -e modify,create,move,delete /slave
        
         

          常用参数

          • -m:持续进行监控
          • -r:递归监控所有子对象
          • -q:简化输出信息
          • -e:指定要监控哪些事件类型
          • modify:修改
          • create:创建
          • move:移动
          • delete:删除

          内核优化
          /etc/sysctl.conf(内核参数配置文件)

          max_queue_events		#监控事件队列大小
          max_user_instances  	#最多监控实例数
          max_user_watches    	#每个实例最多监控文件数  
          
           

            2.2 部署 Rsync+Inotify 实时同步

            2.2.1 Master

            vim /etc/rsyncd.conf
            read only = no
            #关闭只读模式,否则将不可写入
            #通过杀死进程的方法重启rsync
            kill `cat /var/run/rsyncd.pid`
            netstat -natp | grep rsync
            rsync --daemon
            netstat -natp | grep rsync
            chmod 777 /var/www/html
            
             

              2.2.2 Slave

              优化Slave内核参数

              echo "fs.inotify.max_queued_events = 32768
              fs.inotify.max_user_instances = 1024
              fs.inotify.max_user_watches = 1048576" >> /etc/sysctl.conf
              
               

                安装Intofy-tools

                wget -P /opt https://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
                cd /opt
                #将软件包传至该目录下
                tar -zxvf inotify-tools-3.13.tar.gz
                cd /opt/inotify-tools-3.13/
                ./configure
                make -j 4 && make install
                
                 

                  编写自动监控同步脚本

                  vim /opt/inotify.sh
                  #!/bin/bash
                  INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /slave"
                  #INOTIFY_CMD变量:持续监控 /slave 目录中的创建,删除,移动,修改,改变时间的操作
                  RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /salve fox@192.168.0.10::wwwroot"
                  #RSYNC_CMD变量:使 fox 用户,/etc/server.pass 密钥文件,将 /slave 目录下的文件进行压缩,归档,保留硬链接文件同步至 192.168.0.10 的共享模块定义的目录 /var/www/html 下,并删除差异性内容,保持一致性
                  #检测目录是否有修改操作
                  $INOTIFY_CMD | while read DIRECTORY EVENT FILE
                  do
                  	#判断是否有正在进行的rsync任务,如果没有则执行
                      if [ $(pgrep rsync | wc -l) -le 0 ] ; then
                          $RSYNC_CMD
                  	fi
                  done
                  
                   

                    赋予权限并后台运行

                    cd /opt/
                    chmod +x inotify.sh
                    ./inotify.sh
                    #给脚本赋权并在后台执行
                    
                     

                      创建一个新的文件并删除一个已有的文件

                      cd /slave
                      touch fox.html
                      rm -rf dog.html
                      ls
                      
                       



                        http://www.niftyadmin.cn/n/3652259.html

                        相关文章

                        PHP做Web项目的优缺点

                        再CSDN的论坛上,有一网友说道类似问题,他们的项目考虑使用PHP来做,我进行了回复,描述了PHP做Web项目的有点,同时也考虑到PHP跟ASP.net的对比,参考文后的连接。PHP的优点:1. 跨平台,性…

                        GFS私房菜————|GFS三组件|GFS的特点|GFS平台部署|详细图解|

                        GFS 分布式存储平台1.GlusterFS简介 1.1GlusterFS的概念 GlusterFS:分布式文件系统 开源的分布式文件系统组成: 存储服务器客户端NFS/Samba 存储网关 无元数据服务器 数据分散存储可避免出现单点故障 补充: FS(文件系统&…

                        测试你的PHP水平

                        有一个国外的PHP测试网站, 很有意思, 测试你掌握PHP的程序, 我的语法测试69道题, 错了22道! -_-#有兴趣的可以去测试一下:http://www.blueshoes.org/en/developer/syntax_exam/

                        关于Oracle收购InnoDB

                        关于Oracle收购InnoDB最近数据库巨头甲骨文已经收购了与开放源代码数据库厂商MySQL有密切关系的芬兰公司Innobase Oy。Innobase开发供在MySQL 数据库中存储数据使用的名为InnoDB的数据库引擎。InnoDB采用GPL 许可协议,被捆绑在MySQL 数据库中。 InnoDB主要是为Mysql…

                        ELK私房菜————|ELK|Kiabana|Filebeat|ELK企业级日志分析|超详细图解|

                        ELK日志分析系统1.ELK概述1.1 ELK日志分析系统1.2 ELK中日志处理步骤1.3 Elasticsearch概述(1)Elasticsearch的特性(2)分片和副本1.4 LogStash概述1.5 Kibana概述2.搭建部署ELK2.1 拓扑图2.2 配置node2.2.1 配置节点名2.2.2 配置 …

                        FreeBSD各种Logo收藏

                        FreeBSD各种图标,有些比较可爱。特别收集,供爱好玩耍。 :-)

                        Zookeeper私房菜————|Zookeeper工作机制|Zookeeper选举机制|Zookeeper集群部署|超详细图解|

                        Zookeeper集群1.Zookeeper概述1.1ZooKeeper 是什么?1.2 ZooKeeper 提供了什么?1.3 Zookeeper 如何保证主从节点的状态同步?1.4 Zookeeper工作机制1.5 zookeeper特点1.6 zookeeper数据结构1.7 zookeeper应用场景统一命名服务统一配置管理统一集…

                        Kafka私房菜————|Kafka 架构深入|Kafka 工作流程|存储机制|Filebeat+Kafka+ELK集群部署|超详细图解|

                        Kafka 架构深入1.Kafka 工作流程及文件存储机制1.1 数据可靠性保证1.2 数据一致性问题(1)follower 故障(2)leader 故障1.3 ack 应答机制2. FilebeatKafkaELK集群部署2.1.部署 ZookeeperKafka 集群2.2 部署 Filebeat2.3 部署 ELK&a…