监视目录,如果请求文件,则按需 rsync

监视目录,如果请求文件,则按需 rsync

是否有一种工具可以监视某个目录,并且如果程序尝试访问该目录中的文件,则该程序会为尝试加载该文件的任何应用程序透明地从另一个位置加载该文件?

背景是我有一个大型服务器应用程序的本地开发环境。目前,我不时将用户在生产系统上创建的所有文件同步rsync到我的本地计算机。但数据量已经变得太大了。我无法在本地开发计算机上存储生产环境中的数百 GB 数据。有没有一种方法可以模仿来自外部系统的文件,并且仅在确实需要时才从外部系统加载/同步它们?

然而,对这些“受监控”目录的写入更改只能在本地进行。

答案1

你的情况听起来很自然联盟。使用 unionfs,您可以将生产系统的数据安装为只读文件系统,并在其上安装一个透明的可写文件系统层,以接受您的本地更改。

答案2

也许通过网络挂载远程文件系统是一个很好的解决方案。实现这一目标的可能性有很多。

您可以通过 NFS、SMB 或 SSHFS 从生产计算机导出一些目录,然后将其安装到您的开发计算机上。如果您使用此方法,只有在您请求时才会通过网络传输文件。

我不知道将用户文件从生产系统传输到开发系统的目的是什么,但如果文件包含一些私有/敏感数据,您应该记住此解决方案的安全性。如果您选择挂载远程文件系统的选项,请记住以只读模式挂载它,以避免意外损坏。

答案3

看起来像是一份工作FS缓存。这是一个 Linux 文件系统,用于连接应用程序和真实文件系统(如果要缓存远程文件,则可以是 NFS 或 SSHfs)。

快速入门指南:

cachefilesd
mount -t nfs -o fsc remotehost:/somedir /mount/point
ls /var/cache/fscache

有关更多信息,请参阅Fedora 文档,RHEL 文档,巴特的博客,旧的 Gentoo 维基。也许您也感兴趣,一篇关于CacheFS 和 FS 缓存

答案4

在这里插话,但这里有一个解决方案,我在工作中使用它来同步主机 A > 主机 B 的任何更改。

您可以控制同步间隔,即如果在 30 秒内检测到更改,则每 30 秒同步一次,等等。

它还有其他选项,请查看自述文件。

与 类似lsyncd,但配置更简单,并且使用非常低的内存/CPU。

完美25/波尼

相关内容