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

lsyncd 在哪台服务器启动,这台服务器就像当于是同步服务器,其他服务器如果多了文件就会删除,少了文件就会从这台服务器同步下来。

修改文件内容也会同步

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 语言写的)

 

[plain]  view plain  copy
 
  print ?
  1. yum install lua lua-devel  

 

在github 上下载 lsyncd-master.zip 

 

[plain]  view plain  copy
 
  print ?
  1. unzip lsyncd-master.zip   
  2. cd lsyncd-master  
  3. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lsyncd  
  4. make && make install  


创建配置文件

 

 

[plain]  view plain  copy
 
  print ?
  1. cd /usr/local/lsyncd/  
  2. mkdir ./etc  
  3. mkdir ./var  
  4. vi etc/lsyncd.conf  


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

 

 

[plain]  view plain  copy
 
  print ?
  1. -- 全局配置   
  2. settings {  
  3.     -- 日志文件存放位置  
  4.     logfile ="/usr/local/lsyncd/var/lsyncd.log",  
  5.   
  6.     -- 状态文件存放位置  
  7.     statusFile ="/usr/local/lsyncd/var/lsyncd.status",  
  8.   
  9.     -- 将lsyncd的状态写入上面的statusFile的间隔,默认10秒  
  10.     --statusInterval = 10  
  11.   
  12.     -- 是否启用守护模式,默认 true  
  13.     --nodaemon=true   
  14.   
  15.     -- inotify监控的事件 ,默认是 CloseWrite,还可以是 Modify 或 CloseWrite or Modify  
  16.     inotifyMode = "CloseWrite",  
  17.   
  18.     -- 最大同步进程  
  19.     maxProcesses = 8,  
  20.   
  21.     --累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到  
  22.     --maxDelays = 1  
  23. }  
  24.   
  25. -- 远程目录同步  
  26. sync {  
  27.     -- rsync , rsyncssh , direct 三种模式  
  28.     default.rsync,  
  29.   
  30.     -- 同步的源目录,使用绝对路径。  
  31.     source = "/home/wwwroot/attachments",  
  32.   
  33.     -- 定义目的地址.对应不同的模式有几种写法,这里使用远程同步的地址,rsync中的地址  
  34.     target = "rsync137@192.168.1.137::rsyncd",  
  35.   
  36.     -- 默认 true ,允许同步删除。还有 false, startup, running 值  
  37.     --delete = true,  
  38.   
  39.     -- 哪些文件不同步  
  40.     exclude = { ".*" },  
  41.   
  42.     -- 累计事件,等待rsync同步延时时间,默认15秒,最大累计到1000个不可合并的事件(1000个文件变动),  
  43.     delay = 15,  
  44.   
  45.     -- 默认 true 当init = false ,只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步  
  46.     --init = true,  
  47.   
  48.     -- rsync 的配置  
  49.     rsync = {  
  50.         -- rsync 的二进制处理文件  
  51.         binary = "/usr/bin/rsync",  
  52.   
  53.     -- 归档模式  
  54.         archive = true,  
  55.   
  56.     -- 压缩传输  
  57.         compress = true,  
  58.   
  59.     -- 增量  
  60.         verbose   = true,  
  61.   
  62.     -- 密码文件  
  63.         password_file = "/etc/rsyncd.pwd",  
  64.   
  65.     -- 其他 rsync 的配置参数, 限速(--bwlimit KBPS),使用 rsync -v 查看详细参数  
  66.         -- _extra    = {"--bwlimit=200"}  
  67.     }  
  68. }  


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

 

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

 

[plain]  view plain  copy
 
  print ?
  1. vim /etc/rsyncd.pwd  
  2. chmod 600 /etc/rsyncd.pwd  

 

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

 

[plain]  view plain  copy
 
  print ?
  1. ln -s /usr/local/lsyncd/bin/lsyncd /usr/bin/lsyncd  

 

 


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

 

配置可简单点

 

[plain]  view plain  copy
 
  print ?
  1. uid = root  
  2. gid = root  
  3.   
  4. hosts allow = 192.168.1.136  
  5.   
  6. use chroot = no  
  7. # 最大链接数  
  8. max connections = 10  
  9.   
  10. # pid文件的存放  
  11. pid file = /etc/rsyncd/rsyncd.pid  
  12. # max connections 参数的锁文件的存放位置  
  13. lock file = /etc/rsyncd/rsync.lock  
  14.   
  15. # 模块名 自定义  
  16. [rsyncd]  
  17. path = /home/wwwroot/attachments  
  18. ignore errors = true  
  19. # 这里要允许写入  
  20. read only = false   
  21.   
  22. list = no   
  23. auth users = rsync137  
  24. # 指定认证文件  
  25. secrets file = /etc/rsyncd/rsyncd.secrets  
  26. strict modes = true  


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

 

rsync137:123456

 

启动 lsyncd 

 

[plain]  view plain  copy
 
  print ?
  1. lsyncd -log Exec /usr/local/lsyncd/etc/lsyncd.conf  

 

 

测试

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

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

 

同步后如下

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

life1024

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值