我有几个运行系统检查的bash脚本。 这些脚本通过文件/ etc / healthchecks / config获取configuration选项。
随着configuration文件,我有一个共享的function文件。 脚本应该能够获取该文件并运行其中的function。
基于文件系统层次结构标准,我应该在哪里放置共享函数文件? 这不是一个configuration,所以它似乎不属于/ etc,但它也没有被执行,所以/ usr / bin似乎不正确。 也许/ usr / lib?
您应该将您的healthchecks可执行文件放在/ usr / local / bin或/ opt / bin中。 如果你看到你的文件夹/ opt是空的,意味着你的linux发行版不使用它。 所以,合适的地方是/ usr / local。
/ usr / local和/ opt是每个“手动”程序包/程序必须放置的地方。 / usr是软件包pipe理器(即dpkg)pipe理的软件包。 根据FHS,/ opt是手动包的“标准位置”,但debian发行版使用/ usr / local。
对于configuration文件,它们必须放置在/ usr / local / etc中,因为/ etc用于自动包和其他系统程序的configuration文件。
共享函数的正确位置是/ usr / local / share(/ usr / share用于自动包的共享文件)。 每个被devise为只读且独立于结构的文件属于/ usr / share或/ usr / local / share(如果它们是“自动”或“手动”包)。
/ usr / lib用于dynamic和静态二进制库(.so或.a),而不用于“解释”库/函数。
通常,解释器在每个版本的/ etc / share /中有不同的子文件夹,每个版本文件夹内有不同的脚本文件夹,区域设置,testing,示例等。
如果有一天您为软件包healthchecks创build了官方存储库,则可以将/ usr / local / healthchecks内容迁移到/ usr / healthchecks和/ etc / healthchecks。
我通常会尝试在这些保留的系统区域之外保留特定于站点的事物。 您可能会考虑使用自己的顶级目录层次结构,因为在使用系统区域时,系统进化过程中特殊的站点文件很容易丢失或遗忘。 另一个可能是/ usr / local / etc ..