rsync+inotify实现Git数据实时同步备份

定时备份和实时备份

说到备份,无疑于定时备份和实时同步备份。定时备份可以通过脚本或者Crontab来实现,而实时同步备份可以通过某些接口监控文件的各种变化情况来实现的(比如内核接口inotify);通过对比可以发现对数据信息要求高的环境使用实时同步备份可以更好更有利的保护数据的安全性。

软件介绍之rsync

rsync说明

rsync 远程同步,同步是把数据从缓冲区同步到磁盘上去的、数据在内存缓存区完成之后还没有写入到磁盘中去、所以有时候要同步到磁盘中去的,而rsync说白了和复制差不多、能将一个文件从一个地方复制到另外一个地方的、但是他也可以实现跨主机复制,兼具了cp和scp的功能,但是在跨主机时不具备scp的加密功能。
      rsync有一个特点,就是当你用rsync复制或跨主机复制时如果另一端也有一个同名的文件,他会先对比两个数据的md5码是不是一致,如果不一致就会复制,并覆盖,如果一致他将不会复制,所以这是一个快速复制工具,尤其是同步目录时,特别好用。

利用inotifywait监控主机文件和目录

利用inotify+rsync实现Linux文件批量更新

inotify-tools+rsync实时同步文件安装和配置

rsync同步完整配置

CentOS 6.5下Rsync远程同步

rsync常用选项 

-a    归档,复制时可以保存原有的属主属组等属性信息,甚至包含一点额外的属性(如访问控制列表)

-v    详细输出模式、显示详细过程的

-q    静默模式,尽可能输出少的信息

-r    递归复制

-c    打开校验开关,强制对文件传输进行校验

-b    创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项指定不同的备份文件前缀。可以使用--backup-dir将备份文件(~filename)存放在此目录下

-p    保留文件的权限

-t    保留文件的时间戳

-l    保留文件的符号链接

-g    保留文件的属组

-o    保留文件的属主

-n    显示哪些文件将被传输

-W    拷贝文件,不进行增量检查

--delete      删除那些DST中SRC没有的文件

--exclude    指定排除不需要传输的文件模式

--progress    在传输时显示传输过程(进度条)

--stats      显示状态

--password-file=FILE    指定从FILE中得到密码

--config=FILE            指定其他的配置文件,不使用默认的rsyncd.conf

软件介绍之inotify

inotify介绍

Inotify 是一个Linux特性,是一种强大的、细粒度的、异步的文件系统监控机制,linux内核从2.6.13起便加入了Inotify支持,通过Inotify可以监控文件系统中添加、修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而Inotify-tools就是这样的一个第三方软件。Inotify反应灵敏,用法简单,并且比使用Crontab轮询高效很多。

inotify常见监控事件

IN_ACCESS:    文件被访问

IN_MODIFY:    文件被修改

IN_ATTRIB:    文件属性被修改

IN_CLOSE_WRITE:    以可写方式打开的文件被关闭

IN_CLOSE_NOWRITE:  以不可写方式打开的文件被关闭

IN_OPEN:      文件被打开

IN_MOVED_FROM:      文件被移出监控的目录

IN_MOVED_TO:        文件被移入监控着的目录

IN_CREATE:    在监控的目录中新建文件或子目录

IN_DELETE:    文件或目录被删除

IN_DELETE_SELF,    自删除,即一个可执行文件在执行时删除自己

IN_MOVE_SELF,      自移动,即一个可执行文件在执行时移动自己

inotify-tools介绍

inotify-tools是一套组件,它包括一个C库和几个命令行工具,这些命令行工具可用于通过命令行或脚本对某文件系统的事件进行监控。inotify-tools提供的两个命令行工具(inotifywait,inotifywatch)就是可以监控文件系统下文件的各种变化情况。

工具一--inotifywait命令介绍:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f394271f9a069f1fee5606c50c60b4c8.html