我有一些运行系统检查的 bash 脚本。这些脚本从文件 /etc/healthchecks/config 中获取配置选项。
除了配置文件,我还有一个共享函数文件。脚本应该能够获取该文件并运行其中的函数。
基于文件系统层次结构标准,我应该把共享函数文件放在哪里?它不是一个配置,所以它似乎不属于 /etc,但它也没有被执行,所以 /usr/bin 似乎不正确。也许/usr/lib?
您应该将healthchecks可执行文件放在 /usr/local/bin 或 /opt/bin 中。如果您看到您的文件夹 /opt 为空,则意味着您的 linux 发行版不使用它。所以,合适的地方是/usr/local。
/usr/local 和 /opt 是每个“手动”包/程序必须放置的地方。/usr 用于由包管理器(即 dpkg)管理的包。根据 FHS,/opt 是手动软件包的“标准位置”,但 debian 发行版使用 /usr/local 代替。
对于配置文件,必须放在/usr/local/etc下,因为/etc是自动包和其他系统程序的配置文件。
共享函数的正确位置是 /usr/local/share(/usr/share 用于自动包的共享文件)。每个设计为只读且独立于架构的文件都属于 /usr/share 或 /usr/local/share (如果它们由“自动”或“手动”包拥有)。
/usr/lib 用于动态和静态二进制库(.so 或 .a),而不是用于“解释的”库/函数。
通常,解释器在 /etc/share/ 中为每个版本有不同的子文件夹,在每个版本文件夹中,脚本、语言环境、测试、示例等都有不同的文件夹。
如果有一天你为你的包创建了一个官方存储库healthchecks,你可以将你的 /usr/local/healthchecks 内容迁移到 /usr/healthchecks 和 /etc/healthchecks。