run-parts
执行目录中的所有程序和脚本——但是我什么时候需要它?
它有哪些常见用途?
答案1
如果您管理一个服务器场或多个类似的系统,并且例如有一个应用程序需要在每个系统上进行多个环境设置,您可以使用run-parts
创建一个放入目录您可以根据需要添加和删除脚本片段,以便每个文件都包含一组与特定 servlet 或其他应用程序组件或配置目标关联的设置。
然后,您的应用程序启动脚本(或等效脚本)将run-parts
在执行实际应用程序之前从放置目录中读取所有设置。
以插入目录的形式管理设置可以更轻松地跨多个系统同步和更新设置,特别是在使用 Ansible、Salt 或 Puppet 等工具时。
即使仅管理复杂应用程序的单个实例,按用途将各个设置分组到文件中也可以更轻松地跟踪正在发生的情况,尤其是在描述性选择脚本片段名称的情况下。
设置插入目录时,众所周知的做法是在脚本名称前加上两位或三位数的数字前缀,以使所需的执行顺序明确:run-parts
将运行目录中的脚本或程序“C”语言环境排序顺序(即与LC_ALL=C /bin/ls
列出它们的顺序相同)。
通过使用run-parts
而不是滚动您自己的循环来执行指定目录中的所有脚本,您可以轻松应用一些常见的嵌入式文件命名规则(或使用您自己的文件名验证正则表达式),以避免处理编辑器备份文件或其他可能会导致错误的文件。不小心留在了放置目录中。
如果您的发行版包含类似/etc/profile.d/
或 的目录/etc/X11/Xsession.d/
,那么它们的内容很可能是通过使用 执行的run-parts
。系统范围的 cron 作业目录的内容/etc/cron.(hourly|daily|weekly|monthly)/
通常也使用run-parts
直接从/etc/crontab
或间接通过anacron
's执行/etc/anacrontab
。