当前位置:首页 > linux基础 > 正文内容

rsync+lsyncd实时同步

3年前 (2021-04-14)linux基础687

安装 rsync 和 lsyncd 


yum install rsync lsyncd -y


配置 rsync


vim /etc/rsyncd.conf

uid = rsync             # 运行进程的用户

gid = rsync             # 运行进程的用户组

port = 873              # 监听端口

fake super = yes        # 无需让rsync以root身份运行,允许接收文件的完整属性

use chroot = no         # 禁锢推送的数据至某个目录, 不允许跳出该目录

max connections = 200   # 最大连接数

timeout = 600           # 超时时间

ignore errors           # 忽略错误信息

read only = false       # 对备份数据可读写

list = false            # 不允许查看模块信息

auth users = rsync_backup# 定义虚拟用户,作为连接认证用户

secrets file = /etc/rsync.passwd # 定义rsync服务用户连接认证密码文件路径

[backup]                # 定义模块信息

comment = commit        # 模块注释信息

path = /backup          # 定义接收备份数据目录



 

##创建密码文件

echo "密码“ > /etc/rsyncd.pwd

 

配置lsyncd  SSH模式配置文件

vim /etc/lsyncd.conf

####SSH模式配置文件

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 = "/home/backup/",        --源目录

  delete = true,              --保持完全同步    

  host = "root@11.22.33.44",        --远程服务器地址

  targetdir = "/home/backup/",       --目标目录

  exclude={ "*.tmp", "*.bak" },    --需排除的文件

 

rsync = {

  binary = "/usr/bin/rsync", --需先安装好rsync

  archive = true,      --归档

  compress = false,     --压缩

  owner = true,       --属主

  perms = true,       --权限

  _extra = {"--bwlimit=5120"}, --限速5120KB/S

  whole_file = false

  },

ssh = {

  port = 22

  }

}



### rsync 模式配置文件

-- 全局配置 

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 = { ".*" },

 -- 设置排除不需要同步的文件的列表,

 excludeFrom="/etc/rsync_exclude.lst",

 

  -- 累计事件,等待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"}

  }

}

 


lsyncd 配置说明

1、settings 部分 关于lsyncd工具自身的一些选项设置

  --: 注释, 因为是lua 语言,所以 --是注释

 logfile :    指定lsyncd工具本身运行所产生的日志文件存放位置

 statusFile :   定义lsyncd监控目录状态文件的存放位置

 statusInterval :  隔多少秒记录一次被监控目录的状态

 nodaemon=true :  默认是不启用守护模式的

 inotifyMode :   指定要监控的事件,如,CloseWrite(关闭写入),Modify(修改),CloseWrite or Modify, 默认是CloseWrite

 maxProcesses :   指定同步时进程的最大个数

 maxDelays :   当事件被命中累计多少次后才进行一次同步


2、sync 部分 主要用来定义同步时的一些设置,可以同时同步多个目录,只需要在该代码块中事先定义好多个sync即可

 default.rsync :  指定lsyncd运行模式,另外,还有>default.direct,default.rsyncssh模式

 source :    指定要监控的目录,务必全部用绝对路径

 target :    要同步到的目标目录,一般为rsync服务端模块下指定的目录,说明: 'rsyncuser@192.168.10.20::bak' , 'rsyncuser':同步的用户在备服务器上设置 ,'192.168.10.20':备服务器地址, '::backup':模块名称,同步路径在备服务器上设置

 

 init :    为false时表示只同步lsyncd进程启动以后发生改动事件的文件,否则,反之,默认为true

 delay :   当命中的事件累计到多少时再触发同步

 exclude :   通过此选项排除掉不需要同步的文件,可用它自己的正则进行匹配

 delete    为了保持target与souce完全同步,Lsyncd默认会delete = true来允许同步删除。它除了false,还有startup、running值,请参考 Lsyncd 2.1.x ‖ Layer 4 Config ‖ Default Behavior。

 delete = true 默认。 Lsyncd将在目标上删除不在源代码中的任何东西。在启动时以及在正常操作过程中被删除的内容

 delete = false Lsyncd不会删除目标上的任何文件。不在启动或正常运行。 (虽然可以覆盖)

 delete = 'startup' Lsyncd将在启动时删除目标上的文件,但不会进行正常操作。

 delete = 'running' Lsyncd在启动时不会删除目标上的文件,但会删除那些在正常操作期间被删除的文件


“rsync+lsyncd实时同步” 的相关文章

Linux文件编辑-VIM编辑器

Linux文件编辑-VIM编辑器

VIM基本概述1.什么是VIM?vi和vim是Linux下的一个文本编辑工具。(可以理解为windows的记事本,或word文档)2.为什么要使用VIM?因为Linux系统一切皆为文件,而我们工作最多的就是修改某个服务的配置(其实就是修改文件内容)。也就是说如果没有vi/vim,我们很多工作都无法完...

sersync实时同步

sersync实时同步

实时同步概述实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器。保证数据的连续性, 减少人力维护成本,解决nfs单点故障实时同步工具选择sersync+rsync(√)、inotify+rsyncInotify是一个通知接口,用来监控文件系统的各种变化,如果...

NFS文件共享存储

NFS文件共享存储

NFS基本概述NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分...

Shell介绍(一)变量、传参、数值运算

Shell编程1.什么情况下使用Shell1:安装CentOS系统 自动化安装操作系统(kickstart cobbler) 底层shell2:网络IP地址3:初始化操作系统(ntp时间同步,更改默认YUM源,SSH端口,SSH远程连接禁止DNS解析,禁止root登录,关闭seilnux,防火墙优化...

Shell介绍(二)函数,数组

函数命令的集合 完成特定功能的代码块模块化 复用函数和变量类似 只有先定义才可以调用,如果只定义不调用 则不会执行函数的定义和调用三种方法:[root@web scripts]# cat fun.sh #!/bin/sh test1(){   ...

Shell介绍(三)if判断,case控制,for循环,while循环,流程控制语句

if判断单分支if [你有房] then     我就嫁给你 fi多分支if [ 你有房 ] then     我就嫁给你 else   &nbs...