OSSync是一款专为阿里云OSS开发的基于inotify机制的linux服务器增量备份工具,采用Python开发。
主要特色
- 基于inotify机制 - Inotify 是一个 Linux 内核特性,它实时监控文件系统的变化,比如删除、读、写,移动等操作。利用这个机制可以实现文件及时、高效同步到阿里云,避免频繁轮询等低效操作文件方式,减轻系统负载。
- 可以一次同步多个本地文件夹和多个bucket - 只要定义好本地文件夹和bucket的映射关系,可以同时将多个本地文件夹同步到多个bucket.
- 基于消息队列的多线程快速同步 - 采用消息队列和多线程机制,实现快速同步。
- 安全准确同步 - 文件上传校验和失败重传确保文件完整同步。
开发这个工具的想法是受到一个真实的需求启发,那时我们的服务器图片文件已经几百G了,每天通过rsync进行同步备份,每次备份至少要半个小时,因为rsync每次都需要检查源文件和备份文件是否一致,并且不能做到及时同步。我们开始寻找能及时备份的工具,后来找到一款金山公司牛人开发的sersync,这款工具能及时检测文件变化并立即同步到备份服务器。比rsync更高效。受到这款工具的启发我开发了OSSync。
主要功能如图:
但是,OSSync不仅仅作为备份工具,请看:
DISCUZ默认将图片保存在本地服务器,默认为./data/attachement。如果将这个目录用OSSync同步到阿里云的bucket,那么这个文件夹中的子文件夹和目录的任何变化都会及时反应到阿里云的bucket。只需要按下面图片所示修改附件url地址,即可以作为discuz的上传插件使用。图片还是先保留到本地硬盘,但很快就会默默同步到阿里云oss,本地硬盘相当于高速缓存。图片的访问可以通过阿里云oss。基于inotify机制,这个过程是很快的。
除了discuz,其他像phpwind,wordpress基本上都类似可以使用这种方式。
该软件已有幸入选阿里云开发大赛入围作品,欢迎大家下载测试,批评和指正。如果觉得有用,请投我一票
,作品是第153号名叫Ossync,不胜感谢。
评论
全部评论 (0)