使用硬链接和颠覆来管理配置文件?

使用硬链接和颠覆来管理配置文件?

我正在考虑将配置文件硬链接到我的 SVN 配置存储库的工作副本中。有什么理由不以这种方式管理配置文件吗?

假设 /home/user/confmgr/confs 是我的配置存储库的工作副本。然后我可以按如下方式硬链接配置文件-

ln /etc/php.ini /home/user/confmgr/confs/php.ini
ln /etc/httpd/conf/httpd.conf /home/user/confmgr/confs/httpd.conf

然后当我需要编辑配置文件时就这么简单

cd /home/user/confmgr/confs
vi httpd.conf
/sbin/service httpd configtest
/sbin/service httpd graceful
svn commit -m 'adding virtual host to httpd.conf for new project'

答案1

以下是一些几乎以相反顺序进行的观察:

  1. 为什么不使用符号链接呢?
  2. 考虑改变你的工作流程。安全地对第二个工作副本进行更改,检查并提交,然后将svn up工作副本投入实际使用。
  3. 有更复杂的工具可以从版本控制中管理复杂的配置结构。考虑使用木偶细胞因子2etckeeper等等。

答案2

我不会把它们放在/home

将配置文件放在根文件系统的某个位置。

这是因为 / 在其他文件系统之前安装,并​​且有可能需要位于尚未安装的文件系统上的配置文件。

我也会使用符号链接而不是硬链接。不允许跨文件系统硬链接(如果我没记错的话),当您从 SVN 签出更新的文件时(更改 inode),您可能会得到断开的链接。

您需要非常小心,但我不明白为什么您不能使用此配置运行。

答案3

etc-keeper对你来说可能是一个很好的参考设计:

etckeeper 是一组工具,用于将 /etc 存储在 git、mercurial、darcs 或 bzr 存储库中。

它将存储库存储在 /etc/.$RCS 中,但不支持 SVN。我不知道为什么;作者只是说他试过了,但效果很糟糕。本质上,这种方法使 /etc工作副本

相关内容