joeforker Asked: 2009-05-14 13:12:27 +0800 CST2009-05-14 13:12:27 +0800 CST 2009-05-14 13:12:27 +0800 CST 是否有使用 inotify 的有效 Linux 备份解决方案? 772 备份需要很长时间。在我们可以信任 btrfs 或 ZFS 备份增量快照之前,如果有一个守护进程使用 inotify 来跟踪哪些文件实际发生了更改,这样备份会运行得更快,那不是很好吗?这个程序在哪里? 如何备份我的 Linux 机器而不必每次都爬取整个文件系统?我想要一个程序来检测新的或更改的照片、源代码等,并将它们排队以复制到我的 NAS。 backup linux inotify 7 个回答 Voted Best Answer joeforker 2009-05-15T09:28:05+08:002009-05-15T09:28:05+08:00 我用“yum search inotify”回答了我自己的问题。它被称为lsyncd,它托管在谷歌代码上。 不幸的是,它看起来总是首先运行完整的 rsync,所以如果我的计算机一次没有打开超过 14 小时,它仍然对我没有帮助。 Lsyncd 使用 rsync 将本地目录与运行 rsyncd 的远程计算机同步。lsyncd 通过 inotify 监视多个目录树。添加watches后的第一步是将所有目录与远程主机同步,然后通过收集inotify事件同步单个文件。所以 lsyncd 是一个轻量级的实时镜像解决方案,应该易于安装和使用,同时与您的系统很好地融合。有关详细的命令行选项,请参阅 lsyncd --help。 joeforker 2009-12-03T13:27:57+08:002009-12-03T13:27:57+08:00 有一个名为的新系统fsnotify旨在解决其不足之处,inotify旨在解决dnotify. fsnotify让您无需大惊小怪地观看整个文件系统。希望fsnotify能帮助解决我们未来所有的 Linux 备份问题。 hayalci 2009-05-14T16:49:56+08:002009-05-14T16:49:56+08:00 你可以用incron破解一些东西。 /path1 IN_CLOSE_WRITE rsync -au $@/$# backuphhost:/path user26055 2009-11-14T13:38:20+08:002009-11-14T13:38:20+08:00 根据研究(非测试),似乎 inotify 无法处理大多数系统上的大量文件和/或处理速度非常慢。http://www.pubbs.net/kernel/200905/109416/上的线程是最有用的,它指出了一个新的 linux 功能,它似乎在或正在走向主线,fsnotify,它在 linux 2.6.31然后。 axkibe 2010-12-14T10:37:03+08:002010-12-14T10:37:03+08:00 Lsyncd 在启动时同步整个监视树,因为对于 99% 的情况,这是明智的做法。您确实需要本地主机上的目标主机上的目录,否则同步可能会失败,并且您希望同步关闭时错过的内容。但是,如果您知道自己在做什么,则可以关闭启动同步,只需在 Lsyncd 配置文件中设置 sync{..., startup=false} 即可。 关于inotify,它不是文件数量,而是消耗资源的目录数量。一个目录就是一个手表,不管它包含多少文件。 fanotify 基于 fsnotify 构建,例如 inotify 对于观看大量目录的人来说看起来很有希望,但目前从 Linux 2.6.37 开始,fanotify 根本不报告重命名(移动)事件,因此无法用于这样的工作:-( Bobo 2012-02-19T18:11:12+08:002012-02-19T18:11:12+08:00 我花了 6 个月的时间寻找最佳解决方案来执行您正在尝试做的事情;高效备份到 NAS。在初始同步之后,其他一切都像黄油一样光滑。最新版本的 Lsyncd 运行良好。我已经在下面的链接中记录了我所做的事情。只需替换您的文件夹值。希望这可以帮助: https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit skiller 2010-02-22T17:25:47+08:002010-02-22T17:25:47+08:00 有一个在亚洲使用的新系统,称为 sersync,它将代替 inotify-tool+rsync 解析 http://code.google.com/p/sersync/ 它非常易于使用。
我用“yum search inotify”回答了我自己的问题。它被称为lsyncd,它托管在谷歌代码上。
不幸的是,它看起来总是首先运行完整的 rsync,所以如果我的计算机一次没有打开超过 14 小时,它仍然对我没有帮助。
有一个名为的新系统
fsnotify
旨在解决其不足之处,inotify
旨在解决dnotify
.fsnotify
让您无需大惊小怪地观看整个文件系统。希望fsnotify
能帮助解决我们未来所有的 Linux 备份问题。你可以用incron破解一些东西。
根据研究(非测试),似乎 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/ 它非常易于使用。