• 服务器同步解决方案Rsync+Inotify


     手动解决服务器同步问题解决方案

    什么是rsync 

      RSYNC 是Remote Sync 远程同步,开源的实现数据全量与增量同步备份的工具

    具有什么特性

    1)支持拷贝特殊文件如链接,设备,属组,权限等
    2)可以有排除指定文件或目录同步的功能,相当于打包命令tar
    3)可以保持原来文件或目录的权限,时间,软硬链接等所有属性均不改变。
    4)可实现增量同步,即只同步发生变化的数据,因此数据传输效率更高
    5)可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对传输数据加密),也可以通过直接的socket链接(有服务端和客户端)
    6)支持匿名(不需要超级用户权限)的或认证的进程模式传输,方便进行数据备份及镜像。

    采用C/S模式(客户端/服务器模式)[ 就是一个点到点的传输,直接使用rsync命令 ] ,其工作方式是源主机和从机ssh建立连接,中间用shell语法输入指令,类似于scp

    rsync还可以实现文件和目录的删除功能,这又是相当于RM命令,rsync相当于scp,cp,rm命令。并且还由于他们。

    在同步备份时,默认情况下,rsync通过其独特的“quick check”算法,仅同步大小或者最后修改时间发生变化的文件或目录(也可根据权限,属主等变化同步,需要制定参数)。甚至是只同步一个文件里变化的内容部分,所以可以实现快速的同步数据的功能。

    两台服务器 192.168.2.3(源服务器),192.168.2.5(目标服务器)

    服务器环境centos8

    生产环境中使用的场景:

    1:一般用于数据异地备份

    2:用于WEB集群节点数据的批量更新

    3:用于本地YUM服务器与互联网镜像站软件同步

    源服务器:

    https://github.com/inotify-tools/inotify-tools/tags

    下载inotify-tools最新tar.gz包并解压

    tar -xvf inotify-tools-xxx.tar.gz
    
    cd notify-tools-xxx
    
    ./configure --prefix=/usr/local/inotify-tool-x
    
    make && make install

    vi /home/test/rsync.passwd

    123456
    chmod 600 /home/test/rsync.passwd
    
    chmod 600 home/test/rsync.conf

    所有目标服务器安装:(需要安装rsync服务,源服务器开启服务)

    yum install rsync xinetd  # CentOS中是以xinetd来管理Rsync服务的,可以选择不安装

    vi /home/test/rsync.conf

    uid=root #设置rsync运行权限为root
    gid=root #设置rsync运行权限为root
    use chroot=no #默认为true,修改为no,增加对目录文件软连接的备份
    port=873 #默认端口,不填就是默认端口
    max connections=10 #最大连接数
    strict modes=yes
    pid file=/var/run/rsyncd.pid
    lock file=/var/run/rsync.lock
    log file=/home/test/rsyncd.log
    [web] #自定义名称
    path=/home/wwwroot/test #rsync服务端数据目录路径
    comment=web#模块名称,与上面[web]名字相同
    ignore errors
    read only=no #设置rsync服务端文件为读写权限
    write only=no
    hosts allow=192.168.2.5 #允许ip,多个以英文逗号分割
    host deny =* #禁用ip,多个以英文逗号分割
    list=false
    auth users=root #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开
    secrets file=/home/test/rsync.passwd #用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件

    vi /home/test/rsync.passwd

    root:123456
    chmod 600 /home/test/rsync.passwd
    
    chmod 600 /home/test/rsync.conf
    rsync --daemon --config=/home/test/rsync.conf #启动,要注意的是源服务器不需要启动rsync服务
    
    ps -ef |grep rsync #查看是否有rsync服务进程
    

    切换到源服务器192.168.2.3

    在/home/wwwroot/test目录下新建一个文件,再用下面到命令执行,查看目标服务器是否有文件新增

    rsync -vzrtopg --delete  --password-file=/home/test/rsync.passwd /home/wwwroot/test root@192.168.2.5::web

    自动实现服务器数据同步 Rsync+Inotify-tools

    参考地址:

      https://blog.csdn.net/u012700515/article/details/104499026

      https://m.linuxidc.com/Linux/2017-12/149355.htm

      https://www.osyunwei.com/archives/7435.html

    
    
  • 相关阅读:
    牛客网编程练习之网易2017校招题:下厨房
    牛客网编程练习之网易2017校招题:数字翻转
    牛客网编程练习之京东2017校招题:幸运数
    牛客网编程练习之去哪儿网2017校招题:身份证分组
    牛客网编程练习之网易2017校招题:解救小易
    牛客网编程练习之腾讯2017校招题:游戏任务标记
    Fiddler实现对手机抓包
    sshpass笔记
    图片反色
    LintCode题解之统计数字
  • 原文地址:https://www.cnblogs.com/RainBol/p/14604339.html
Copyright © 2020-2023  润新知