我有两台运行Linux的服务器,计算机A和计算机B.我需要编写一个程序或一个shell脚本,它将持续监视计算机A上我的主目录的内容,如果有任何变化,将更改复制到计算机B上的主目录,这样两个主目录总是相同的。 (对计算机B上的主目录所做的任何更改都可以安全地被忽略。)
答案 0 :(得分:4)
您是否考虑过通过网络文件系统将/home
从计算机A导出到计算机B. NFS?
您也可以在B上以只读模式挂载导出的文件系统,这样如果需要,您将无法从B修改/home
的内容。
答案 1 :(得分:2)
假设有一个合理的Linux内核(包括inotify的内核 - 它自2.6.13以来一直存在),你可以使用here描述的inotify-tools监视更改并调用文件上的rsync来更新计算机B那应该做你要求的,并且允许B上没有传播到A的变化。
你可以用incron做同样的工作,它的工作方式与cron类似,但是基于文件系统事件而不是时间,但似乎更适用于单个文件。
答案 2 :(得分:0)
使用rsync,这将解决您的问题。大多数发行版都已经预先安装了。