Linux 查看删除inotify的目录树

Linux 查看删除inotify的目录树,linux,d,inotify,directory-tree,fanotify,Linux,D,Inotify,Directory Tree,Fanotify,我正在尝试编写一个备份实用程序,它应该能够处理许多文件夹中大约2 TB的数据 我希望它在创建/编辑/删除文件时对文件执行操作,更喜欢移动或重命名文件 我把fanotify搞得一团糟,结果发现它只适用于文件编辑。 如果可以的话,我反对使用inotify,因为我必须编辑最大的文件表,我不想这样做。 我想这会对性能产生很大影响 我最好只设置一个filewatch,它递归地运行到它下面的所有文件。 有没有经验的人知道什么是好方法? 我是否应该选择inotify并接受性能冲击? 或者我可以采取不同的方法吗

我正在尝试编写一个备份实用程序,它应该能够处理许多文件夹中大约2 TB的数据

我希望它在创建/编辑/删除文件时对文件执行操作,更喜欢移动或重命名文件

我把fanotify搞得一团糟,结果发现它只适用于文件编辑。 如果可以的话,我反对使用inotify,因为我必须编辑最大的文件表,我不想这样做。 我想这会对性能产生很大影响

我最好只设置一个filewatch,它递归地运行到它下面的所有文件。 有没有经验的人知道什么是好方法? 我是否应该选择inotify并接受性能冲击?
或者我可以采取不同的方法吗?

我认为没有一种方法可以递归地监视目录树中的更改。另一方面,使用inotify,您不需要为每个监视的目录创建一个文件描述符。创建单个inotify对象,然后使用
inotify\u add\u watch

int inotify_add_watch(int fd, const char *pathname, uint32_t mask);

我为一个小型RAMDrive编写了一个轮询备份应用程序;我有丰富的经验修复了一些问题。我通常不喜欢轮询,但我使用的是windows和std.file库:windows 10使其lib 5主要版本落后;所以不要担心可移植性

我计划了两种模式:活动模式和休眠模式,这两种模式可以防止磁盘在切换到更长的时间前无意义地旋转一次,从而使磁盘保持旋转状态。我刚刚开始考虑检测和修复,ZFS的介质复制解决方案似乎很幼稚,因为WinRAR允许您对归档文件执行此操作

一个月前我买了一台新电脑,我还在试着备份我的文件。小心使用火卫一,即std.任何东西。std.file的副本更改了创建时间,这对于恢复的文件是不正确的;复制后需要读取旧文件的创建时间,自己调用OS函数并设置创建时间;所有这些元数据都随windows系统调用而来,因此这是开始研究Linux系统调用中的数据的好地方

现在可能是重新访问Python并尝试以下操作的好时机:
扰流板:它在3.5.2中被破坏。

这不也会增加很多开销吗?我不需要在启动时递归地扫描我想看的整个树吗?我想我可以完整地扫描它一次,然后将所有目录写入一个文件。然后在程序启动时加载单个文件。您必须扫描一次,以便可以开始监视找到的所有目录。从那时起,当您收到目录创建或删除事件时,您必须相应地调用
inotify\u add\u watch
/
inotify\u rm\u watch
。这是如何执行的?它会不会让电脑慢下来,比如说。。。一百万个目录?我还没有试过这么多,但我认为没有更好的选择,所以可能值得一试。如果有,请告诉我们结果。这闻起来像是XY问题。你到底想干什么?我怀疑您正在尝试编写一个程序,使两个磁盘保持“同步”,以便一个磁盘上的文件编辑显示在另一个磁盘上。如果这是你的目标,考虑使用设置RAID代替;它更高效、更可靠。@ColonelThirtyTwo-one可以很容易地在两台有互联网连接的机器之间保持2TB的同步