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

来源:互联网 发布:iphone7垃圾清理软件 编辑:程序博客网 时间:2024/06/12 01:19

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 上结构如下图



同步后如下



原创粉丝点击