需要永远备份。在我们可以信任btrfs或ZFS备份增量快照之前,如果有一个守护进程使用inotify来跟踪实际更改了哪些文件,以便备份运行得更快,那岂不是很好吗?这个程序在哪里?
如何备份Linux机器而不必每次都爬网整个文件系统?我想要一个程序来检测新的或更改的照片,源代码等,并将它们排队复制到我的NAS中。
需要永远备份。在我们可以信任btrfs或ZFS备份增量快照之前,如果有一个守护进程使用inotify来跟踪实际更改了哪些文件,以便备份运行得更快,那岂不是很好吗?这个程序在哪里?
如何备份Linux机器而不必每次都爬网整个文件系统?我想要一个程序来检测新的或更改的照片,源代码等,并将它们排队复制到我的NAS中。
Answers:
我用“ yum search inotify”回答了自己的问题。它称为lsyncd,并托管在Google代码中。
不幸的是,它看起来总是总是首先运行完整的rsync,因此如果我的计算机一次打开超过14个小时仍无法对我有帮助。
Lsyncd使用rsync将本地目录与运行rsyncd的远程计算机同步。Lsyncd通过inotify监视多个目录树。添加监视后的第一步是将所有目录与远程主机同步,然后通过收集inotify事件来同步单个文件。因此,lsyncd是一种轻型的实时镜像解决方案,在与系统完美融合的同时,应该易于安装和使用。有关详细的命令行选项,请参见lsyncd --help。
您可以使用Incron破解某些东西。
/ path1 IN_CLOSE_WRITE rsync -au $ @ / $#backuphhost:/ path
根据研究(未经测试),似乎inotify无法在大多数系统上处理非常大量的文件,并且/或者处理速度很慢。http://www.pubbs.net/kernel/200905/109416/上的线程是最有用的,它指出了一项新的linux功能,该功能似乎已经或即将进入主线fsnotify,即linux 2.6.31。然后。
Lsyncd在启动时同步整个监视的树,因为在99%的情况下,这是明智的做法。您确实希望本地主机上具有目标主机上的目录,否则同步可能会失败,并且您想要同步关闭时丢失的内容。但是,如果您知道自己在做什么,则可以关闭启动同步,只需在Lsyncd配置文件中设置sync {...,startup = false}。
关于inotify,它不是文件数量而是占用资源的目录数量。一个目录就是一只手表,无论它包含多少文件。
fanotify建立在fsnotify之上,就像inotify一样,对于观看大量目录的人们来说非常有前途,但是从Linux 2.6.37开始,fanotify根本不报告重命名(移动)事件,这使得它无法用于这样的工作:-(
我花了6个月的时间来寻找执行您要执行的操作的最佳解决方案;高效地备份到NAS。初始同步后,其他所有内容都像黄油一样光滑。Lsyncd的最新版本运行良好。我在下面的链接中记录了我所做的事情。只需替换您的文件夹值即可。希望这可以帮助:
https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit
在亚洲有一个称为sersync的新系统,它可以代替inotify-tool + rsync分辨率 http://code.google.com/p/sersync/ ,非常易于使用。