我有一些运行系统检查的 bash 脚本。这些脚本从文件 /etc/healthchecks/config 中获取配置选项。
除了配置文件,我还有一个共享函数文件。脚本应该能够获取该文件并在其中运行函数。
基于文件系统层次标准,我应该把共享函数文件放在哪里?它不是一个配置,所以它似乎不属于 /etc,但它也没有被执行,所以 /usr/bin 似乎不正确。也许 /usr/lib?
我有一些运行系统检查的 bash 脚本。这些脚本从文件 /etc/healthchecks/config 中获取配置选项。
除了配置文件,我还有一个共享函数文件。脚本应该能够获取该文件并在其中运行函数。
基于文件系统层次标准,我应该把共享函数文件放在哪里?它不是一个配置,所以它似乎不属于 /etc,但它也没有被执行,所以 /usr/bin 似乎不正确。也许 /usr/lib?
您应该将
healthchecks
可执行文件放在 /usr/local/bin 或 /opt/bin 中。如果你看到你的文件夹 /opt 是空的,意味着你的 linux 发行版没有使用它。因此,合适的位置是 /usr/local。/usr/local 和 /opt 是必须放置每个“手动”包/程序的地方。/usr 用于由包管理器(即 dpkg)管理的包。/opt 是根据 FHS 的手动软件包的“标准位置”,但 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。我通常会尝试将特定于站点的东西保留在这些保留的系统区域之外。您可能会考虑使用自己的顶级目录层次结构,因为在使用系统区域时,特殊站点文件在系统演化过程中很容易丢失或遗忘。另一种可能性可能是 /usr/local/etc .....