【问题标题】:Configuration Key Value Store配置键值存储
【发布时间】:2011-01-20 19:16:21
【问题描述】:

我正处于一个脚本/应用程序的规划阶段,我很快就需要编写它。简而言之,我将有一个配置文件来存储系统配置的多个键值对。各种应用程序将与该文件对话,包括 python/shell/rc 脚本。

一个示例是,当系统启动时,它会从该文件中提取静态 IP 以分配给自己。这意味着在 shell/rc 脚本(ifconfig `evalconffile main_interface` `evalconffile primary_ip` up)中快速从该文件中获取键/值会很好,其中evalconffile 是在提供时获取值的脚本键。

我正在寻找解决此问题的最佳方法的建议。我已经放弃了使用纯文本文件和 perl 来检索值的想法。我还考虑过使用 YAML 作为配置文件的想法,因为最终可能会有一个用例,我们需要多个值来进行键和一般扩展。我知道 YAML 可以让它从 python 和 perl 访问,但我不确定从 shell/rc 脚本快速访问它的最佳方法是什么。

我的方向正确吗?

【问题讨论】:

    标签: perl configuration-files yaml key-value


    【解决方案1】:

    一种方法是根据需要简单地执行 YAML,然后当 shell/RC 需要键/值对时,他们会调用一个小的 Perl 脚本(在您的示例中为 evalconffile)来解析 YAML代表 shell 脚本并打印出值

    【讨论】:

      【解决方案2】:

      SQLite 将为您提供最大的灵活性,因为您似乎不知道将在那里存储的内容的范围。您提到的所有脚本语言似乎都支持它。

      【讨论】:

      • 这里唯一的问题是它不能很好地与 git 配合使用,并且不能快速编辑。
      • 编辑数据库非常容易。使用sourceforge.net/projects/sqlitebrowser。没错,它不会与 git 配合得很好。您很可能必须将其视为二进制文件。猜猜你必须权衡使用 4 种语言 API 编写自己的数据库的缺点。 =) 我认为不能很好地使用 Git 会成为两害相权取其轻的结果。
      • 我刚刚想到的另一件事...您可以将 sqlite 数据库导出为 sql 命令列表以在 git 中使用。它应该像纯文本文件一样合并,缺点是稍微复杂一些。
      猜你喜欢
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      相关资源
      最近更新 更多