如何像Dropbox一样跟踪文件更改?
有没有人知道怎么在文件被修改时执行一些方法(用Python),就像Dropbox那样,它有一个持续数据保护机制,可以准确跟踪文件何时被修改并进行同步。
当然,这不是针对整个硬盘,而是针对指定的文件夹进行监控。
备注:适用于Windows和Linux操作系统。如果能在Mac上也能用,那就更好了;)
3 个回答
0
你需要的是 rsync。在Python中有几种实现rsync的方式。可以看看这些链接 -
http://pypi.python.org/pypi/rsync.py/2.0
http://code.activestate.com/recipes/577518-rsync-algorithm/
5
在Linux系统上,pyinotify可能正好符合你的需求。不过,要注意在inotify(7)
手册中提到的一些注意事项,特别是:
要知道,事件队列可能会溢出。如果发生这种情况,事件就会丢失。因此,健壮的应用程序应该能够优雅地处理丢失事件的情况。
如果你要监控一个整个目录及其子目录,并且在这个目录树中创建了一个新的子目录,要注意的是,当你为这个新子目录设置监控时,可能已经有新文件在这个子目录中创建了。因此,你可能需要在添加监控后立即扫描一下这个子目录的内容。