是否有使用inotify的有效Linux备份解决方案?


17

需要永远备份。在我们可以信任btrfs或ZFS备份增量快照之前,如果有一个守护进程使用inotify来跟踪实际更改了哪些文件,以便备份运行得更快,那岂不是很好吗?这个程序在哪里?

如何备份Linux机器而不必每次都爬网整个文件系统?我想要一个程序来检测新的或更改的照片,源代码等,并将它们排队复制到我的NAS中。


您在这里实际上并没有提供太多信息,尤其是有关当前用于备份的内容,数据类型的信息。有几种备份软件,它们使用日志来跟踪对文件系统的更改,然后在备份期间引用该日志。您到底要备份什么,要备份到哪种设备/应用程序,数据的性质是什么,当前备份的方法是什么?
WerkkreW

@WerkkreW,我认为他要备份的内容并不那么重要。我怀疑可以进行基于事件的备份的任何知识都是很有趣的。该请求并不罕见,OSX具有基于事件的时间机器。
Zoredache

我仍然觉得这个问题需要进一步澄清才能得到解答。
WerkkreW

1
@Zoredache,当然,我要备份的内容很重要!如果这不重要...哦,等等;-)我想备份我的主目录,而n台机器在n个小时内没有不可用的机器时,这时,rsync会爬行整个东西,而这是唯一的新东西我刚出生的婴儿的照片。
joeforker,2009年

3
这个问题对我来说似乎很清楚:Mac OS X的Time Machine备份速度很快,因为它可以监视fsevents,因此它知道运行备份时在哪里查看。Linux具有intify,与fsevents类似的功能,但是试图近似Time Machine(例如苦苦挣扎)的Linux备份解决方案却非常缓慢,因为它们没有利用inotify。有什么办法吗?

Answers:


11

我用“ yum search inotify”回答了自己的问题。它称为lsyncd,并托管在Google代码中。

不幸的是,它看起来总是总是首先运行完整的rsync,因此如果我的计算机一次打开超过14个小时仍无法对我有帮助。

Lsyncd使用rsync将本地目录与运行rsyncd的远程计算机同步。Lsyncd通过inotify监视多个目录树。添加监视后的第一步是将所有目录与远程主机同步,然后通过收集inotify事件来同步单个文件。因此,lsyncd是一种轻型的实时镜像解决方案,在与系统完美融合的同时,应该易于安装和使用。有关详细的命令行选项,请参见lsyncd --help。


这是一个有趣的链接,我什至想到了自己实现。但是,为什么在页面上说每次更改都会重新传输大文件呢?我以为rsync本身已经可以避免这种情况?
汉诺·菲茨

rsync仍然必须在两端重新读取整个文件,以尽可能高效地传输它。lsyncd文档打算说这对于大文件可能不是有效的。对于大文件,块级复制方案会更合适。
joeforker

3

有一个称为的新系统fsnotify旨在解决的缺陷,inotify旨在解决的问题dnotifyfsnotify使您可以观察整个文件系统而不必大惊小怪。希望fsnotify能帮助解决我们将来所有的Linux备份问题。



2

根据研究(未经测试),似乎inotify无法在大多数系统上处理非常大量的文件,并且/或者处理速度很慢。http://www.pubbs.net/kernel/200905/109416/上的线程是最有用的,它指出了一项新的linux功能,该功能似乎已经或即将进入主线fsnotify,即linux 2.6.31。然后。


2

Lsyncd在启动时同步整个监视的树,因为在99%的情况下,这是明智的做法。您确实希望本地主机上具有目标主机上的目录,否则同步可能会失败,并且您想要同步关闭时丢失的内容。但是,如果您知道自己在做什么,则可以关闭启动同步,只需在Lsyncd配置文件中设置sync {...,startup = false}。

关于inotify,它不是文件数量而是占用资源的目录数量。一个目录就是一只手表,无论它包含多少文件。

fanotify建立在fsnotify之上,就像inotify一样,对于观看大量目录的人们来说非常有前途,但是从Linux 2.6.37开始,fanotify根本不报告重命名(移动)事件,这使得它无法用于这样的工作:-(


甚至在删除后再创建吗?
joeforker 2010年

1
不是在我的测试中,没了:-(设计fanotify在头脑里的病毒防护,恕我直言量身定做,现在正好到最小它要求。
axkibe


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.