0
点赞
收藏
分享

微信扫一扫

配置sersync/lsync实现实时同步

月白色的大狒 2021-09-30 阅读 63
Linux

1.inotify文件系统事件监视

  • 安装inotify-tools
    yum install inotify-tools -y
  • inotifywait详细参数解释
inotifywait参数说明
参数名称            参数说明
-m ,-monitor       始终保持事件监听状态
-r,-recursive      递归查询目录
-q,-quiet          只打印监控事件的信息
-exclude           排除文件或目录时,不区分大小写
-t,-timeout        超时时间
--timefmt          指定时间输出格式
--format           指定输出格式
-e,event           后面指定增,删,改等事件
inotifywait events 事件说明
access             读取文件或目录内容
modify             修改文件或目录内容
attrib             文件或目录的属性改变
close_write        修改真实文件内容
close_nowrite   
close   
open               文件或目录被打开
moved_to           文件或目录移动到
moved_from         文件或目录从...移动到
move               移动文件或目录移动到监视目录
create             在监视目录下创建文件或目录
delete             删除监视目录下的文件或目录
delete_self 
umount             卸载文件系统
%T                 调用并显示定义好的时间格式
%w                 显示发生变化的文件的绝对路径
%f                 显示监控到的文件名称,去掉后只显示目录路径
  • 测试close_write监控backup目录
    inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%w%f' -e close_write /backup

2.sersync监控伪实时同步

  • 安装sersync
wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz
tar zxf sersync2.5.4_64bit_binary_stable_final.tar.gz
  • 配置文件解释
#需要监控的目录      <localpath watch="/data">   
#远程rsync服务器的IP地址和模块名称   <remote ip="172.16.1.41" name="data"/>  
#rsync传输的参数    <commonParams params="-az"/> 
#rsync密码文件路径  <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.passwd"/>    #
  • 参数说明
[root@nfs /opt/sersync]# ./sersync2 -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
________________________________________________________________
  • 启动服务
    ./sersync2 -rdo confxml.xml

3. lsyncd实时同步

  • lsyncd安装
    yum install lsyncd -y
  • 配置文件模板
    /etc/lsyncd.conf
settings {
  logfile = "/var/log/lsyncd/lsyncd.log",
  statusFile = "/var/log/lsyncd/lsyncd.status",
  inotifyMode = "CloseWrite",
  maxProcesses = 8,
}
sync {
  default.rsync,
  source = "/data",
  target = "rsync_backup@172.16.1.41::data",
  delete = true,
  exclude = { ".*" },
  delay = 1,
  rsync = {
    binary = "/usr/bin/rsync",
    archive = true,
    compress = true,
    verbose = true,
    password_file = "/etc/rsync.passwd",
    _extra = {"--bwlimit=200"}
  }
}

sync {
  default.rsync,
  source = "/backup",
  target = "rsync_backup@172.16.1.41::backup",
  delete = true,
  exclude = { ".*" },
  delay = 1,
  rsync = {
    binary = "/usr/bin/rsync",
    archive = true,
    compress = true,
    verbose = true,
    password_file = "/etc/rsync.passwd",
    _extra = {"--bwlimit=200"}
  }
}
  • 启动lsyncd
    systemctl start lsyncd
举报

相关推荐

0 条评论