通过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. 数据适配 DataAdapter对象

    DataAdapter对象是DataSet和数据源之间的桥梁,可以建立并初始化数据表(即DataTable) 对数据源执行SQL指令,与DataSet对象结合,提供DataSet对象存取数据,可视为D ...

  2. “PPT中如何插入和提取swf文件”的解决方案

    解决方案: 如何在PPT中插入swf文件: 1.依次单击Office按钮,Powerpoint选项,勾选“在功能区显示‘开发工具’选项卡”后,确定: 2.单击“开发工具”选项卡中的“其他控件”按钮,然 ...

  3. Github - 修改语言统计

    前些日子看到有人提到这个问题,于是自己也试着解决了一番,在此记录下来,希望对大家有帮助. Github中创建一个repository后会出现一个统计使用语言的颜色条. 就是下面这个东西: 似乎很多人遇 ...

  4. [编程] C语言循环结构计算π的值

    公式: 分析:首先,系数为正数的项的分母是4n-3(n为正数项的项数),为负数的项的分母为4n-1(n为负数项的项数),即分母的变化规律是1.3.5.7...的奇数数列,则第n项的分母为2n-1,第1 ...

  5. 使用webClient实现图片同步,异步下载

    WebClient.DownloadFile 方法 将具有指定 URI 的资源下载到本地文件. 命名空间:System.Net 程序集:System(在 system.dll 中) 同步实现参考代码: ...

  6. 【SSH网上商城项目实战17】购物车基本功能的实现

    转自:https://blog.csdn.net/eson_15/article/details/51418350 上一节我们将商品的详细页面做完了,并使用了Hibernate的二级缓存加载详细页面来 ...

  7. unity3d之简单的时钟倒计时demo

    输入结束时间,开始倒计时,时间差不超过一天,附上代码:(关于个位数显示,加个判断如果小于10 显示的字符串加上0) using System.Collections; using System.Col ...

  8. 03.CSS选择器-->交集并集选择器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. ASP.NET MVC学习笔记 第一天

    MVC:Mode(模型).View(视图).Controller(控制器)         在服务器接收到请求(Request)时,路由(Routing)定义了应该调用的控制器,以及应该调用的控制器动 ...

  10. QT5.9 新特性与版本回顾

    原文链接: http://blog.qt.io/blog/2017/05/31/qt-5-9-released 翻译内容如下,采用的是第三方某在线翻译软件,所以有些地方不是太精确,纵然大吉做了一定的调 ...