rsync + lsyncd 文件实时同步/备份

原创 2016年03月21日 17:01:54

rsync 可实现文件的同步/备份,安装配置移步linux 下 rsync 备份/同步文件

lsyncd 实现了触发式或定时通知事件,可以近实时的同步文件(封装了rsync),github地址:https://github.com/axkibe/lsyncd


系统:centos6.4

主服务器:192.168.1.136

同步服务器:192.168.1.137


在 192.168.1.136 上安装 lsyncd 

安装依赖(lsyncd 使用 lua 语言写的)

yum install lua lua-devel

在github 上下载 lsyncd-master.zip 

unzip lsyncd-master.zip 
cd lsyncd-master
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lsyncd
make && make install

创建配置文件

cd /usr/local/lsyncd/
mkdir ./etc
mkdir ./var
vi etc/lsyncd.conf

内容为( -- 是 lua 中的注释符)

-- 全局配置 
settings {
    -- 日志文件存放位置
    logfile ="/usr/local/lsyncd/var/lsyncd.log",

    -- 状态文件存放位置
    statusFile ="/usr/local/lsyncd/var/lsyncd.status",

    -- 将lsyncd的状态写入上面的statusFile的间隔,默认10秒
    --statusInterval = 10

    -- 是否启用守护模式,默认 true
    --nodaemon=true 

    -- inotify监控的事件 ,默认是 CloseWrite,还可以是 Modify 或 CloseWrite or Modify
    inotifyMode = "CloseWrite",

    -- 最大同步进程
    maxProcesses = 8,

    --累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到
    --maxDelays = 1
}

-- 远程目录同步
sync {
    -- rsync , rsyncssh , direct 三种模式
    default.rsync,

    -- 同步的源目录,使用绝对路径。
    source = "/home/wwwroot/attachments",

    -- 定义目的地址.对应不同的模式有几种写法,这里使用远程同步的地址,rsync中的地址
    target = "rsync137@192.168.1.137::rsyncd",

    -- 默认 true ,允许同步删除。还有 false, startup, running 值
    --delete = true,

    -- 哪些文件不同步
    exclude = { ".*" },

    -- 累计事件,等待rsync同步延时时间,默认15秒,最大累计到1000个不可合并的事件(1000个文件变动),
    delay = 15,

    -- 默认 true 当init = false ,只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步
    --init = true,

    -- rsync 的配置
    rsync = {
        -- rsync 的二进制处理文件
        binary = "/usr/bin/rsync",

	-- 归档模式
        archive = true,

	-- 压缩传输
        compress = true,

	-- 增量
        verbose   = true,

	-- 密码文件
        password_file = "/etc/rsyncd.pwd",

	-- 其他 rsync 的配置参数, 限速(--bwlimit KBPS),使用 rsync -v 查看详细参数
        -- _extra    = {"--bwlimit=200"}
    }
}

更多详细配置,请看文档 https://github.com/axkibe/lsyncd/wiki/Lsyncd%202.1.x%20%E2%80%96%20The%20Configuration%20File

创建密码文件(内容为192.168.1.137 上用户‘rsync137’对应的密码 123456)

vim /etc/rsyncd.pwd
chmod 600 /etc/rsyncd.pwd

将 lsyncd 加入到环境目录(做个软链)

ln -s /usr/local/lsyncd/bin/lsyncd /usr/bin/lsyncd


在192.168.1.137安装配置 rsync ,参考这里linux 下 rsync 备份/同步文件

配置可简单点

uid = root
gid = root

hosts allow = 192.168.1.136

use chroot = no
# 最大链接数
max connections = 10

# pid文件的存放
pid file = /etc/rsyncd/rsyncd.pid
# max connections 参数的锁文件的存放位置
lock file = /etc/rsyncd/rsync.lock

# 模块名 自定义
[rsyncd]
path = /home/wwwroot/attachments
ignore errors = true
# 这里要允许写入
read only = false 

list = no 
auth users = rsync137
# 指定认证文件
secrets file = /etc/rsyncd/rsyncd.secrets
strict modes = true

认证文件内容为(/etc/rsyncd/rsyncd.secrets)

rsync137:123456


启动 lsyncd 

lsyncd -log Exec /usr/local/lsyncd/etc/lsyncd.conf


测试

192.168.1.136 上创建了一个t1的文件夹,和上传了张 t1.jpg图片


还未同步时(配置的15秒延迟),192.168.1.137 上结构如下图



同步后如下




版权声明:本文为博主原创文章,未经博主允许不得转载。

rsync , rsync + ssh, rsync + lsyncd 多种同步方案与比较

1. 利用 ssh+rsync  只需要在服务器端打开 ssh 服务, 并启动 xinetd 中 rsync 服务则可使用  a. 增量同步   rsync -av /src-dir/.  u...
  • signmem
  • signmem
  • 2011年12月24日 18:01
  • 5326

CentOS6.1下的lsyncd安装与配置(以本地同步为例)

CentOS6.1下Lsyncd的安装与配置方法
  • Czach
  • Czach
  • 2016年04月28日 10:24
  • 2121

lsyncd实现同步本地和远程目录

目的 使用lsyncd+ssh实现两台服务器之间目录的同步; 环境 Centos 6.4 lsyncd 2.1.5 安装配置 配置SSH无密码访问 在Server A上执行 #ssh-keygen -...
  • bobpen
  • bobpen
  • 2013年10月18日 14:06
  • 1745

Linux-非结构化数据同步-Linux下Lsyncd实现非结构化增量差异数据的同步4

lsyncd配置方式很简单,lua本身就是一种配置语言,可读性非常强。lsyncd也有多种工作模式可以选择,本地目录cp,本地目录rsync,远程目录rsyncssh。 2. 使用 lsyn...

lsyncd+rsync实时同步rsync同步

lsyncd可以达到的要求: 1. 采用开源软lsyncd采用inotify原理监听某一目录,如果目录内发生增、删、改、利用rsync协议自动同步到多服务器。 2. inotify,从kernel ...

swoole安装基本配置

php安装swoole1. 下载swoole安装``` wget http://pecl.php.net/get/swoole-1.9.1.tgz tar -zxvf swoole-1.9.1.tgz...

gitlab实时备份方案(非官方命令)

gitlab实时备份

rsync , rsync + ssh, rsync + lsyncd 多种同步方案与比较

1. 利用 ssh+rsync  只需要在服务器端打开 ssh 服务, 并启动 xinetd 中 rsync 服务则可使用  a. 增量同步   rsync -av /src-dir/.  use...
  • nerissa
  • nerissa
  • 2013年11月14日 16:54
  • 1207

rsync和crontab的介绍及使用rsync和crontab完成自动备份

一/相关介绍 1/rsync rsync,remotesynchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信...

使用rsync和crontab进行服务器自动备份

本文第一部分讲了实现自动备份的流程,后两部分分别介绍了crontab和rsync的简单使用可供查看。 一、使用rsync和crontab来实现服务器内容增量自动备份 设已有主机A和B,需要从生产主机...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:rsync + lsyncd 文件实时同步/备份
举报原因:
原因补充:

(最多只允许输入30个字)