MySQL、fail2ban 和许多其他服务器应用程序将其数据存储在 /var/lib 中。
他们使用正确的目录吗?
如果是这样,为什么它被命名为 lib,这意味着库?
答案1
/var/lib
确实是正确的目录;如中所述文件系统层次结构标准,
该层次结构保存与应用程序或系统相关的状态信息。状态信息是程序在运行时修改的数据,并且属于一台特定主机。用户永远不需要修改文件来
/var/lib
配置包的操作,并且用于存储数据的特定文件层次结构不得向普通用户公开。
该/var/lib
目录在 1.1 版本中被添加到 FSSTND(FHS 的祖先)中,其中给出了其讨论的时间表(1994 年 2 月至 10 月之间),但我无法找到 FSSTND 邮件列表的档案进行检查。我怀疑这个lib
名字被用来并行/usr/lib
,不是因为后者存储库,而是因为它存储“不暴露给普通用户”的文件:/usr/lib
存储对系统操作至关重要的文件,但也不暴露给普通用户。它的使用很可能/var/lib
早于它在 FSSTND 中的集成。
人们可能会期待/srv
如今成为更好的选择,但这被明确排除:
如果数据的目录和文件结构不暴露给消费者,则应该放入
/var/lib
.
答案2
是的,他们正在使用正确的目录。
/var
表示变量,此目录始终用于存储随时间变化的数据。
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s08.html