[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
其他
> 详细
rsync+inotify实现触发式备份
时间:
2018-04-05 14:23:52
阅读:
194
评论:
0
收藏:
0
[点我收藏+]
知识部分
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实现触发式备份
原文:http://blog.51cto.com/13434336/2095018
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!