通过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. <深入理解JavaScript>学习笔记(3)_全面解析Module模式

    简介 Module模式是JavaScript编程中一个非常通用的模式,一般情况下,大家都知道基本用法,本文尝试着给大家更多该模式的高级使用方式. 首先我们来看看Module模式的基本特征: 模块化,可 ...

  2. c#之泛型详解(Generic)

    这篇文章主要来讲讲c#中的泛型,因为泛型在c#中有很重要的位置,对于写出高可读性,高性能的代码有着关键的作用. 一.什么是泛型? 泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个非 ...

  3. ASP.NET之HTML

    1.什么是html 用来描述网页的2.开发工具我们肯定是用vs啦3.img src 图片地址 <img src="img/aa.bmp" />; 4.超链接a标签 hr ...

  4. php and js to facebook登陆 最佳实践

    Facebook Login Flow & Best Practices Best practice for Facebook login flow with the JavaScript S ...

  5. 阿里云服务器windows server流量不大的情况下,tomcat经常出现访问阻塞,手动ctrl+c或者点击右键又访问正常

    我被这个问题折磨了好几天,因为这两天要帮别人做推广,不能再出现这样的情况了,不然广告费就白烧了,所以特意查了一下资料,结果解决方案被我找出来了. 问题发生原因是因为打开编辑选项后,一不小心点到dos窗 ...

  6. Oracle数据库的监控及数据维护

    目前Oracle数据库的管理,数据查询等都需要安装Oracle软件或安装Oracle Client等,远程访问都需要先登录到服务器等繁琐的操作.如果是开发团队,那么每个开发,测试,管理人员都要经历这个 ...

  7. WinFrom折线图

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

  8. 关于StringBuffe()长度和初始化长度的问题归纳

    晚上做一个习题,发现了一个关于StringBuffer()长度的问题 根据理解大致可以归为以下知识. 直接上代码分析吧 public class StringBuffer_length_capacit ...

  9. <Android 应用 之路> 百度地图API使用(4)

    前言 百度地图的定位功能和基础地图功能是分开的,使用的是另外的jar包和so库文件,详情请关注官网: 百度定位SDK 配置 下载对应的jar包和so库,然后移动到lib目录下 AS中注意事项 sour ...

  10. 爬虫day02

    s10day112 内容回顾: 第一部分:爬虫相关 1. 谈谈你对http协议的理解? 规范: 1. Http请求收发数据的格式 GET /index/ http1.1/r/nhost:xxx.com ...