• 通过 lsyncd + rsync 同步文件


      通过rsyncd实现将源服务器上的文件同步到目标服务器,通过lsyncd监控源服务器上的文件是否有变动,若有变动调用rsyncd服务对差异的文件进行同步。

    0. lsyncd有三种同步文件的方式:

    (1)rsync模式:不同主机间同步文件,文件的传递通过套接字传输,服务端启动rsyncd服务监听来自客户端的连接请求。

      主机的一端安装lsyncd,另一端安装rsync,并启动为服务。

    (2)rsyncssh模式:不同主机间同步文件,文件的传输通过ssh,服务端不必启动rsyncd服务,而是通过ssh创建子进程,然后调用rsync程序完成文件同步。
      主机的一端安装lsyncd,另外一端安装rsync。
    (3)direct模式:在同一台主机上同步文件,使用cp、mv等命令完成文件的同步。
      主机上安装lsyncd即可。
      
      本博客介绍第一种rsync模式的安装及配置。

    1. 按下图所示在源和目标服务器上安装rsync和lsyncd程序包

     

    2. 目标服务器上安装rsync,并配置

    2.1. 安装rsync

    $ yum -y install rsync

     2.2 修改配置文件 /etc/rsyncd.conf 

    $ vim /etc/rsyncd.conf
    
    # 启用用户和密码验证,指定文件路径
    secretsfile = /etc/rsync.pass
    
    [backup]
    # 同步的目标路径
    path = /nq/client
    
    # 授权那些源主机
    hosts allow = 192.168.0.10,192.168.0.21
    
    # 其它的禁止
    hosts deny = *
    
    # 启动rsyncd服务的用户和组
    uid = root
    gid = root
    
    # 授权连接目标服务器的用户
    auth users = rsync

    # 否则无法同步
    read only = false

    2.3 创建用户和密码文件,并修改权限为600

    $ cat  /etc/rsync.pass 
    rsync:123456
    
    $ chmod 600 /etc/rsync.pass

    2.4 启动服务

    $ systemctl start rsyncd

     

    3. 源服务器上安装rsync和lsyncd,并配置lsyncd

    3.1 安装rsync

    $ yum -y install rsync

    3.2 安装lsyncd

    $ yum -y install lsyncd

    3.3 修改配置文件 /etc/lsyncd.conf 

    $ /etc/lsyncd.conf 
    settings {
        -- 状态存放位置
        statusFile = "/tmp/lsyncd.stat",
    
        -- 将lsyncd状态写入statusFile文件中的时间间隔
        statusInterval = 10,
    
        --延迟时间
        maxDelays = 1,
    }
    
    sync{
        -- rsync, rsyncssh, direct 三种模式
    -- rsync模式:不同主机间同步文件,文件的传递通过套接字传输,服务端启动rsyncd服务监听来自客户端的连接请求
    -- rsyncssh模式:不同主机间同步文件,文件的传输通过ssh,服务端不必启动rsyncd服务,而是通过ssh创建子进程,然后调用rsync程序完成文件同步
    -- direct模式:在同一台主机上同步文件,使用cp、mv等命令完成文件的同步。 default.rsync,
    -- 同步的源目录 source="/nq/server/", -- 目标地址 target="rsync@192.168.0.21::backup", -- 同步删除目标文件 delete = true, -- 哪些文件不同步 exclude = {".*"}, rsync = { -- rsync路径 binary = "/usr/bin/rsync", archive = true, compress = true, verbose = true, -- 密码文件 password_file = "/etc/passwd.txt", } }

    3.4 将密码存储于以下文件中,并设置权限为600

    $ cat /etc/passwd.txt 
    123456
    $ chmod 600 /etc/passwd.txt 

    参考文档

    1. rsync原理

    Andraw|朱标
  • 相关阅读:
    input表单元素的默认padding不一致问题
    【转】iOS25彩票 幸运转盘
    微分起源
    转载--微分几何为何必然兴起?
    前缀和?or差分序列?
    noip2014 小结
    2019艾瑞(北京)年度高峰会议-数能驱动新变量
    MSF初体验
    s实现指定时间自动跳转到某个页面
    css实现居中
  • 原文地址:https://www.cnblogs.com/zhubiao/p/9096799.html
Copyright © 2020-2023  润新知