通过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: $ chmod /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 = , --延迟时间
maxDelays = ,
} 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原理

通过 lsyncd + rsync 同步文件的更多相关文章

  1. rsync 同步文件

    rsync 同步文件 rsync -avz roo@192.168.4.12::/home/a ./a  --exclude "data" exclude 去掉/a/data 文件 ...

  2. rsync 同步文件重复拷贝问题

    rsync 是同步文件的利器,一般用于多个机器之间的文件同步与备份,同时也支持在本地的不同目录之间互相同步文件.在这种场景下,rsync 远比 cp 命令更加合适,它只会同步需要更新的文件,默认情况下 ...

  3. 使用rsync同步文件

    rsync是Unix/Linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输.关于rsync的核心算法,有兴趣的看下这篇文章. 这里介绍一下 ...

  4. Windows服务器之间rsync同步文件

    两台windows7机器 server:192.168.12.104 client:192.168.12.103 目的:将server上的E盘的目录FYFR里面的内容定时同步到client上的D盘下F ...

  5. Git版本控制,rsync同步文件,完成线上部署

    之前项目开发完成,测试阶段,借着此时,由于公司暂时用两台aliyun  ecs  做业务层,所以每次都需要同步线上文件,进而想着搞一搞服务器端(小公司,新项目,先小搞一把),搭建一套小的版本控制上线的 ...

  6. rsync同步文件

    rsync中的参数 -r 是递归 -l 是链接文件,意思是拷贝链接文件:-p 表示保持文件原有权限:-t 保持文件原有时间:-g 保持文件原有用户组:-o 保持文件原有属主:-D 相当于块设备文件: ...

  7. rsync同步文件到远程机器,卡住10多秒--问题解决过程

    背景 以前大体介绍过,我们这边是做运维平台的.如果要形象化理解,那么,比如jenkins这种喜闻乐见的软件大致了解吧,jenkins就经常需要同步文件/版本包到远程机器上,jenkins怎么实现的,没 ...

  8. 【Linux】rsync同步文件 & 程序自启动

    rsync使用 1. 为什么使用rsync? rsync解决linux系统下文件同步时, 增量同步问题. 使用场景: 线上需要定时备份数据文件(视频资源), 使用rsync完成每天的增量备份. 参见: ...

  9. linux命令:rsync, 同步文件和文件夹的命令

    Usage: rsync [OPTION]... SRC [SRC]... DEST  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST  or ...

随机推荐

  1. ASP.NET 中HttpRuntime.Cache缓存数据

    最近在开始一个微信开发,发现微信的Access_Token获取每天次数是有限的,然后想到缓存,正好看到微信教程里面推荐HttpRuntime.Cache缓存就顺便看了下. 写了(Copy)了一个辅助类 ...

  2. [javaSE] IO流(装饰设计模式)

    装饰设计模式:当想要对已有的对象进行功能增强时,可以自定义类将已有的对象传入,并提供加强功能,自定义的该类称为装饰类 典型的: Reader--FileReader --BufferedReader ...

  3. SpringBoot之整合MyBatis

    今天了解一下SpringBoot如何与我们最常用的ORM框架Mybatis整合. 一. 需要在pom.xml文件里加入mybatis的依赖 <dependency> <groupId ...

  4. Linux**系统实现log日志自动清理

    Linux系统实现log日志自动清理 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  5. java模式之一------代理模式

    代理模式的概念:对其他对象提供一种代理以控制对这个对象的访问 代理模式的三种实现 (1)静态代理 静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类. e ...

  6. 理解B+树算法和Innodb索引

    一.innodb存储引擎索引概述: innodb存储引擎支持两种常见的索引:B+树索引和哈希索引. innodb支持哈希索引是自适应的,innodb会根据表的使用情况自动生成哈希索引. B+树索引就是 ...

  7. C#画个控件,指定字符特殊颜色显示

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. OpenStack IceHouse 部署 - 5 - 网络节点部署

    Neutron网络服务(网络节点)     目录 [隐藏]  1 参考 2 前置工作 2.1 调整内核参数 3 安装 4 配置 4.1 keystone对接 4.2 rabbitmq对接 4.3 me ...

  9. 原生canvas写的飞机游戏

    一个原生canvas写的飞机游戏,实用性不大,主要用于熟悉canvas的一些熟悉用法. 项目地址:https://github.com/BothEyes1993/canvas_game

  10. 使用jQuery获取Dribbble的内容

    Introduction As a web developer, third party API integration is something you will have to face. Esp ...