首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
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
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!