Chinaunix首页 | 论坛 | 博客
  • 博客访问: 326075
  • 博文数量: 61
  • 博客积分: 365
  • 博客等级: 一等列兵
  • 技术积分: 611
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-04 11:39
文章分类

全部博文(61)

文章存档

2017年(15)

2016年(13)

2015年(19)

2014年(12)

2013年(2)

我的朋友

分类: LINUX

2015-10-26 19:32:02

inotify的功能:可以监控文件系统的添加、删除、修改、移动等细微动作,监控到变化,就触发rsync同步;
很多人说,为什么要这个呢,我设置rsync定时同步不就好了,貌似是很好,可是....可是,如果你对要同步的文件不确定大小的时候怎么办?如果开发上传的代码或者程序只有几M,无所谓,你设置5分钟同步一次,很好解决,当上传上百M 的程序呢?五分钟完不成,就会再开启一个rsync进程,当很多个rsync进程堵在一起的时候,你会发现,完蛋了,系统崩溃了,进不去了;还有一种情况就是,发布的东西很急,我要马上上线,一分钟我都不想等,这个时候inotify就起作用了。

部署之前,先说几个误区:
1、inotify是部署在rsync的客户端,通过在rsync的客户端推送数据到rsync的服务端(很多人习惯了从rsync服务器拉东西下来,不要搞误解了)
2、所以要求rsync服务端要设置read only = no ,write only = no,并且需要增加auth users = xxx ,secrets file = /etc/xxx.pass(其实下载可以不用设置users和secrets file ,安全你可以用hosts allow来控制,但是这种从客户端推送到服务端的,必须要auth users和 secrets file )

安装,不用详说了
文件接收端:rsync服务器

点击(此处)折叠或打开

  1. uid = nobody
  2. gid = nobody
  3. use chroot = no
  4. max connections = 500
  5. pid file = /var/run/rsyncd.pid
  6. lock file = /var/run/rsync.lock
  7. log file = /var/log/rsyncd.log

  8. [ceshi]
  9. path = /data/test
  10. comment down
  11. ##ignore errors
  12. read only = no
  13. write only = no
  14. list = no
  15. uid = root
  16. gid = root
  17. auth users = upload
  18. secrets file = /etc/server.pass
文件发送端:rsync客户端和inotify-tools

点击(此处)折叠或打开

  1. #!/bin/bash
  2. host=192.168.61.161
  3. src=/data/log
  4. des=ceshi
  5. user=upload
  6. inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src |while read files
  7. do
  8. rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src $user@$host::$des
  9. echo "${files} was rsynced" >>/var/log/rsync.log 2>&1
  10. done
把这个abc.sh脚本后台执行加入开机启动,搞定收工!
阅读(902) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~