我的 Linux 服务器上有许多应用程序依赖于几个配置文件。这些应用程序相互关联但又相互独立。目前,每个应用程序在 中都有自己的目录/opt
。配置文件每周可以更改一次,但不能更改太多。我计划设置一个 cron 作业,以便每周日从 FTP 站点获取最新版本。
我还不太清楚这些配置文件的最佳存放位置。以下是一些可能性:
/etc/<appsuitename>/
这是一个配置文件,配置进入/etc
/var/<appsuitename>/
文件确实经常更改,但从来不是由管理员(我)直接更改,而是由平台提供商更改。/opt/<appsuitename>/lib
或者/opt/<appsuitename>/common
这更像是 Windows 的思维方式,但在这种情况下可能有意义/usr/lib
可能不是,但为了完整性还是包括在内。
或者可能是其他我还没想到的事情?
编辑:回答@MichaelKjörling 的问题:
- 只有 3 个分区,、、
/home
和/
。/swap
不是/opt
只读的。 - 是的,如果我被公共汽车撞了,就必须由另一个人使用该服务器。
- 这些应用程序是内部开发的,因此我决定配置应该放在哪里。如果不是“元标记”,我可能会放一个最佳实践标记。
- 最终,无论我决定什么都不重要,我知道组织系统更多地是为了系统管理员,而不是为了操作系统的内部运作,但我喜欢遵循标准约定,因为它们的存在是有原因的。
答案1
文件系统层次结构标准要求安装在 下的某些东西的配置文件/opt/xyz
应放入/etc/opt/xyz
,其中xyz
必须匹配。也就是说,安装在以下目录中的应用程序/选择它要求主机特定的配置文件应该在 /etc/opt 下有一个匹配的目录,这些配置文件将进入该目录。
的目的/ETC(特定于主机的系统配置)简单地表述为:
该
/etc
层次结构包含配置文件。“配置文件”是用于控制程序操作的本地文件;它必须是静态的,不能是可执行二进制文件。
当然,没有配置是完全静态的,但我认为此处的“静态”大致意味着“没有管理员干预就不会改变”。
/etc/opt更加具体,其目的表述如下:
附加应用软件包的主机特定配置文件必须安装在目录中
/etc/opt/<subdir>
,其中是存储该包的静态数据<subdir>
的子树的名称。/opt
由于您在 /opt 下安装软件,因此配置文件应该进入 /etc/opt 下相应的子目录或层次结构。
当然,没什么需要您的系统符合 FHS,但它会让其他人更容易找到他们可能正在寻找的任何文件,因为他们知道在哪里可以找到这些文件。
由于这是关于内部开发的软件,因此我也强烈建议你使位置可配置。即使它只能通过在 makefile 中进行宏声明来配置,并通过从源代码进行完全重建来实现,但这仍然比在想要打开配置文件的任何地方将特定位置硬编码到源代码中要好得多。