ky818smKy818sm  2023-11-01 20:26 123ppp资源网 隐藏边栏 |   抢沙发  28 
文章评分 0 次,平均分 0.0

简介

Lsyncd使用文件系统事件接口(inotify或fsevents)来监视对本地文件和目录的更改。Lsyncd将这些事件整理几秒钟,然后生成一个或多个进程以将更改同步到远程文件系统。默认同步方法是rsync
Lsyncd是一种轻量级的实时镜像解决方案。Lsyncd相对容易安装,不需要新的文件系统或块设备。Lysncd不会妨碍本地文件系统性能

可以通过配置文件实现细粒度的自定义。自定义操作配置甚至可以从头开始编写,从shell脚本到用Lua语言编写的代码
版本要求

Lsyncd 2.2.1要求所有源和目标计算机上的rsync> = 3.1
安装
apt-get install lsyncd

启动
service lsyncd start

配置

配置文件说明 /etc/lsyncd.conf
lsyncd配置文件使用lua语法编写


settings
settings {
logfile    日志文件
pidfile    pid文件
nodaemon   表示不启用守护模式,默认
statusFile   运行状态文件
statusInterval   将lsyncd的状态写入上面的statusFile的间隔,默认10秒
inotifyMode     指定inotify监控的事件,默认是CloseWrite,还可以是Modify或CloseWrite or Modify
maxProcesses    最大进程数
maxDelays     累计多少监控事件同步一次,即使delay时间未到也同步
}

以下是三种常用配置案例

1.远程同步rsyncssh模式配置方案:
vim /etc/lsyncd.conf


settings {
    logfile = "/var/log/lsyncd.log",          --日志路径
    statusFile = "/var/log/lsyncd.status",    --状态文件
    pidfile = "/var/run/lsyncd.pid",          --pid文件路径
    statusInterval = 1,                       --状态文件写入最短时间
    nodaemon = false,                         --daemon运行
    maxProcesses = 1,                         --最大进程
    maxDelays = 1,                            --最大延迟
}
sync {
    default.rsyncssh,      --默认rsync+ssh,rsync版本需要升级3以上版本
    source = "/apps/www/renwoleblog/",        --源目录
    delete = true,                            --保持完全同步        
    host = "[email protected]",         
    targetdir = "/apps/www/renwoleblog/bak/", --目标目录
    exclude={                 
             ".txt"            --需排除的文件
    },
rsync = {
    binary = "/usr/bin/rsync", --需先安装好rsync
    archive = true,            --归档
    compress = false,          --压缩
    owner = true,              --属主
    perms = true,              --权限
    whole_file = false
    },
ssh = {
    port = 22
    }
}

2.本地目录同步配置方案:


sync {
    default.rsync,
    source = "/apps/www/renwoleblog/",
    target = "/apps/www/renwoleblog/bak/",
}

3.远程同步rsync-daemon模式配置方案
需要配置远程机:
/etc/rsyncd.conf


uid = root     # 表示同步的文件所属用户
gid = root     # 表示同步的文件所属用户组
use chroot = yes      # 安全相关,表示在同步时,是否将同步目录转为根目录
max connections=0     # 允许客户端的最大连接数,0表示不限制
log file=/var/log/rsyncd/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock

[renwolecom]  #模块名
path = /var/tmp/
read only = no
list = yes
# auth users = rsyncuser
# secrets file = /etc/rsync.pas

rsync --daemon #启动rsync 服务,以独立监听服务的方式(守护进程)运行
远程机配置完毕


sync {
    default.rsync,
    source    = "/apps/www/renwoleblog/",
    target    = "[email protected]::renwolecom",
    delete="true",
    exclude = { ".bak*" },
    delay = 30,
    init = false,
    rsync = {
    binary = "/usr/bin/rsync",
    archive = true,
    compress = true,
    verbose   = true,
    perms = true,
    password_file = "/etc/rsync.password",
    _extra    = {"--bwlimit=200"}
    }
}

重点参数说明:

-- # 注释符
settings # 是全局配置
sync # 定义同步参数
rsync # 定义同步文件参数
ssh # 定义服务器远程端口

lsyncd配置文件允许多个sync互不影响。

说明:如果是一对多,请参阅本地同步,修改目标目录即可。

使用命令加载配置文件,启动守护进程,自动同步目录操作

lsyncd -log Exec /etc/lsyncd.conf

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

声明:如果本站发布的内容侵犯到您的权益,请通过邮件【[email protected]】联系本站,我们将及时删除!

发表评论

表情 格式 链接 私密 签到