码迷,mamicode.com
首页 > 其他好文 > 详细

rsync+inotify实现触发式备份

时间:2018-04-05 14:32:47      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:rsync   inotify   

知识部分
rsync简介:是一个开源的快速备份工具,可以在不同主机之间间相同步整个目录树,支持增量备份,保持链接及权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
在远程同步任务中,负责发起rsync同步的客户机成为发起端,而负责响应同步任务的服务器成为同步源。发起端在发起同步任务的时候对同步源中的同步目录需具有读取权限,这样才能实现同步。而这种同步被称为下行同步,即以rsync为源,客户机为发起端。
inotify简介:inotify是linux内核从2.6.13版本开始提供的通知机制,用来监控文件系统的各种变化情况,如文件的存取、删除、修改等。(在inotify中,create表示创建、delete表示删除、modify修改、move移动、attrib属性更改)利用inofity非常方便的实现文件异动的警报、增量备份以及针对文件变动及时的做出响应。因为inofity通知由linux内核提供,因此主要做本机监控,在触发式备份中长应用于上行同步。
技术分享图片
操作部分:
1、首先在同步源端。建立rsync配置文件(vim /etc/rsyncd.conf)。由于rsync由linux提供,我们直接建立配置即可。
技术分享图片
各选项含义:
use chroot:禁锢在源目录、address=192.168.1.1监听改地址、prot 873监听默认端口873、
log file:日志文件位置、pid file:存放进程ID文件的位置、hosts allow:允许的客户机地址、
[wwwroot]:共享模块名称、path:源目录、comment:注释、read only:只读(建议yes)、
dont compress:不进行压缩的文件类型、auth users:授权用户、secrets file:账户数据文件。
2、建立备份账户的数据文件。vim /etc/rsyncd_users.db,格式为“账户名:密码”。
技术分享图片
3、该账户数据文件需要给与权限,为避免泄露只给与600权限即可。
技术分享图片
4、而ruser用户也应当对/usr/local/httpd/htdocs拥有读取的权限,默认情况下已经有该权限。通过ls -lh可以查看权限。
技术分享图片
5、启动rsync服务。
技术分享图片
6、本次同步我们使用密钥对方式,实现方便便捷的同步。所以我在该同步源端建立了一个用户ruser,密码‘123456’。
技术分享图片
7、开启sshd服务,方便一会儿传送公钥
技术分享图片
8、进入发起端。用root用户创建rsa密钥认证,建立过程我直接回车,没有对私钥设置密码。
技术分享图片
9、找到为root生成的密钥对,将公钥上传到同步源的/tmp下。
技术分享图片
10、回到同步源。在ruser用户的宿主目录下,创建.ssh目录,用于存放公钥;将/tmp下的公钥文件导入到/home/ruser/.ssh/authorized_keys文件中。
技术分享图片
11、回到发起端。测试是否可以ssh远程同步源。可以看到进入到同步源中了。
技术分享图片
12、退出ssh远程。开始inotify部分。首先调整inotify内核参数,vim /etc/sysctl.conf。并输入命令sysctl -p使其生效
技术分享图片
技术分享图片
技术分享图片
13、挂载光盘,安装inotify。
技术分享图片
14、编写触发式同步脚本,vim /opt/inotify_rsync.sh
技术分享图片
15、给予该脚本可执行权限,创建用于同步的文件夹,并授权。执行脚本
技术分享图片
注意:由于是上行同步,使用的是ruser用户,所以ruser需要对同步源中的/usr/local/httpd/htdocs拥有写入权限。(直接在同步源中chmod -R 777即可)
16、再打开一个伪终端,找到/usr/local/httpd/htdocs下,touch一个web.html。
技术分享图片
可以发现touch命令执行后,执行inotify-rsync.sh脚本的伪终端弹出提示消息。
17、进入同步源的同步目录下。可以看到
技术分享图片

rsync+inotify实现触发式备份

标签:rsync   inotify   

原文地址:http://blog.51cto.com/13434336/2095018

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!